1 / 17
文档名称:

栈和队列.doc

格式:doc   大小:32KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

栈和队列.doc

上传人:文库旗舰店 2019/10/4 文件大小:32 KB

下载得到文件列表

栈和队列.doc

文档介绍

文档介绍:顺序栈的基本操作#include<>#include<>#defineSTACKINITSIZE100#defineSTACKINCREMENT10typedefintselemtype;typedefintstatus;typedefstruct{selemtype*base;selemtype*top;intstacksize;}sqstack;intn,e;voidinitstack(sqstack&s){=(selemtype*)malloc(STACKINITSIZE*sizeof(selemtype));if(!)printf("存储分配失败!\n");=;=STACKINITSIZE;}voidadd(sqstack&s){inti=1;for(i=1;i<=n;++i){scanf("%d",&e);*=e;++;}}statusgettop(sqstacks,selemtype&e){if(==){printf("栈为空!\n");return1;}e=*(-1);printf("栈顶元素的值为:%d\n",e);return0;}statuspush(sqstack&s,selemtypee){if(->=){=(selemtype*)realloc(,(+STACKINCREMENT)*sizeof(selemtype));if(!)printf("内存不足!\n");=+;+=STACKINCREMENT;}scanf("%d",&e);*=e;++;return0;}statuspop(sqstack&s,selemtype&e){if(==)printf("栈为空!\n");--;e=*;printf("出栈的元素为:%d\n",e);return0;}statusstacktraverse(sqstacks){if(==){printf("栈为空!\n");}while(<){printf("%d",*(++));}printf("\n");return0;}statusclearstack(sqstack&s){=;return0;}voidmain(){sqstackS;inte;initstack(S);printf("栈的长度为:");scanf("%d",&n);printf("请输入栈的元素:");add(S);printf("这个栈为:");stacktraverse(S);gettop(S,e);pop(S,e);stacktraverse(S);}顺序队列的基本操作#include<>#include<>#defineMAXQSIZE100typedefstruct{int*base;intfront;intrear;}Sqqueue;intinitqueue(Sqqueue&q){=(int*)malloc(MAXQSIZE*sizeof(int));if(!)printf("error");==0;return0;}intqueuelength(Sqqueueq){return(-+MAXQSIZE)%MAXQSIZE;}intenqueue(Sqqueue&q,inte){if((+1)%MAXQSIZE==)return0;[]=e;=(+1)%MAXQSIZE;return0;}intdequeue(Sqqueue&q,int&e){if(==)return0;e=[];=(+1)%MAXQSIZE;return0;}voidmain(){SqqueueQ;inte;initqueue(Q);enqueue(Q,1);enqueue(Q,2);enqueue(Q,3);enqueue(Q,4);enqueue(Q,5);dequeue(Q,e);}链式栈的基本操作#include<>#include<>typedefstructnode