第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

已知Q是一個非空隊列,S是一個空棧?

已知Q是一個非空隊列,S是一個空棧?

僅用隊列和棧的ADT函數(shù)和少量工作變量,使用C語言編寫一個算法,將隊列Q中的所有元素逆置。棧的ADT函數(shù)有:makeEmpty(s:stack); 置空棧push(s:stack; value:datatype); 新元素value進棧pop(s:stack):datatype; 出棧,返回棧頂值isEmpty(s:stack):boolean; 判??辗耜犃械腁DT函數(shù)有enqueue(q:queue;value:datatype); 元素value進隊deQueue(q:queue):datatype; 出隊列,返回隊頭值isEmpty(q:queue):boolean; 判隊列空否
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define OVERFLOW -1
#define ERROR 0

typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;

typedef struct QNode
{
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;

int InitStack(SqStack &S)
{
S.base=(int*)malloc(100*sizeof(int));
if(!S.base)exit(OVERFLOW);
S.top=S.base;
S.stacksize=100;
return OK;
}

int Push(SqStack &S,int e)
{
if(S.top-S.base>=S.stacksize)
{
S.base=(int *)realloc(S.base,(S.stacksize+100)*sizeof(int));
if(!S.base)exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=100;
}
*S.top++=e;
return OK;
}

int Pop(SqStack &S)
{
int e;
if(S.top==S.base)
return ERROR;
e=*--S.top;
return e;
}

int SIsEmpty(SqStack &S)
{
if (S.top-S.base==0) return(1);
else return(0);
}

int makeEmpty(SqStack &S)
{
while(S.top!=S.base)
Pop(S);
return OK;
}

int InitQueue(LinkQueue &Q)
{
Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
if(!Q.front)exit(OVERFLOW);
Q.front->next=NULL;
return OK;
}

int EnQueue(LinkQueue &Q,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p)exit(OVERFLOW);
p->data=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return OK;
}

int DeQueue(LinkQueue &Q)
{
int e;
QueuePtr p;
if(Q.front==Q.rear)
return ERROR;
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
return e;
}

int QIsEmpty(LinkQueue &Q)
{
if(Q.front==Q.rear)
return(1);
else return(0);
}

void main()
{
SqStack s;
LinkQueue q;
int n,data,e;

InitStack(s);
InitQueue(q);

if(SIsEmpty(s))
makeEmpty(s);
if(QIsEmpty(q))
{
printf("Queue is empty!\n");
printf("Please input the length of the queue:\n");
scanf("%d",&n);
printf("Please input the data of the Queue:\n");
for(int i=0;i<n;i++)
{
scanf("%d",&data);
EnQueue(q,data);
}
}
QueuePtr p;
p=q.front->next;

printf("The queue is:");
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");

for(int i=0;i<n;i++)
{
e=DeQueue(q);
Push(s,e);
}

for(i=0;i<n;i++)
{
e=Pop(s);
EnQueue(q,e);
}

printf("After reverse the Queue is:");
for(i=0;i<n;i++)
{
data=DeQueue(q);
printf("%d ",data);
}
printf("\n");
}


查看完整回答
反對 回復(fù) 2022-08-08
  • 1 回答
  • 0 關(guān)注
  • 343 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號