实验三 栈和队列

/*―――――――――――出队―――――――――――*/ int printqueue(Queue *q){ if(q->front==q->rear){

cout<<”队中已无元素”<

cout<<”队中元素依次为:”; while(q->front!=q->rear)

cout<<”[”<

/*―――――――――――主程序―――――――――――*/ int main(){ queue *q; q=new Queue; initqueue(q);

cout<<”please input five elements into queue”<>i; while(1){

switch(i){

case 1:m=dequeue(q,x+1); <

default:cout<<”请重新输入”<

cin>>i; }

return 0;

}

2、第二题 进制转换

#include #include #include #define STACK_INIT_SIZE 20 #define STACKINCREMENT 10 #define ERROR 0

#define OK 1 #define OVERFLOW -2 typedef int SElemtype; typedef struct{ SElemtype *base; SElemtype *top; int Stacksize; }ZGstack;

int InitStack(ZGstack &L){

L.base=(SElemtype *)malloc(STACK_INIT_SIZE * sizeof(SElemtype)); if(!L.base) return ERROR; L.top=L.base;

L.Stacksize=STACK_INIT_SIZE; return OK;}

PushStack(ZGstack &L,SElemtype e){ if(L.top-L.base==L.Stacksize)

L.base=(SElemtype*)realloc(L.base,(L.Stacksize+STACKINCREMENT)*sizeof(SElemtype);

if(!L.base) exit(OVERFLOW); L.top=L.base+L.Stacksize; L.Stacksize+=STACKINCREMENT; }

*L.top++=e; return OK; }

int PopStack(ZGstack &L,SElemtype &e){ if(L.top==L.base) return ERROR;

e=*--L.top; //首先使s.top向下移动一位,然后把s.top指向的值赋给e return OK; }

int StackEmpty(ZGstack L){ if(L.top==L.base) return 1; else return 0; }

void main(){ ZGstack S; SElemtype e; int m;

cout<<\请输入一个十进制数\ cin>>m; InitStack(S); while(m!=0){ e=m%8;

PushStack(S,e); m=m/8; }

while(!StackEmpty(S)) { PopStack(S,e); cout<

栈的实现结果截图

队列实现结果截图

进制转换结果截图

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4