堆栈和队列基本函数

堆栈和队列基本函数

ID:41720703

大小:69.24 KB

页数:13页

时间:2019-08-30

堆栈和队列基本函数_第1页
堆栈和队列基本函数_第2页
堆栈和队列基本函数_第3页
堆栈和队列基本函数_第4页
堆栈和队列基本函数_第5页
资源描述:

《堆栈和队列基本函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一•顺序栈1.宏定义#include#include#defineMAXSIZE****#definedatatype****2.结构体typcdcfstruct{datatypedata[MAXS!ZEJ;inttop;}Seqstack;3.基本函数Seqstack*Init_Seqstack()/*置空栈函数(初始化)1•先决条件:无;2•函数作用:首先建立栈空间,然后初始化栈顶指针,返回栈s的地址*/{Seqstack*s;s=(Seqstack*)malloc(sizeof(Seqstack));s->to

2、p=-1;returns;}intEmpty_Seqstack(Seqstack*s)/*判栈空函数1・先决条件:初始化顺序栈;2•函数作用:判断栈是否为空,空返回1,不空返回0可{if(s->top==-l)return1;elsereturn0;}intPush_Seqstack(Seqstack*s,datatypex)/*入栈函数1•先决条件:初始化顺序栈2•函数作用:将数据x入栈,栈满则不能,成功返回1,因栈满失败返回()*/{if(s->top==MAXSIZE-l)return0;s->top=s->top+1;s->data[s->top

3、]=x;return1;intPop_Seqstack(Seqstack*s,datatype*x)严出栈函数1•先决条件:初始化顺序栈2•函数作用:从栈中岀一个数据,并将其存放到x中咸功返回1,因栈空失败返回0*/{if(s->top==-l)return0;*x=s->data[s->top];s->top—;return1;}intTop_Seqstack(Seqstack*s,datatype*x)/*取栈顶元素函数1•先决条件:初始化顺序栈2•函数作用:取栈顶元素,并把其存放到x中,成功返回1,因栈空失败返回0*/{if(s->top==-l)

4、return0;*x=s->data[s->top];return1;}intPrintf_Seqstack(Seqstack*s)/*遍历顺序栈函数1•先决条件:初始化顺序栈2•函数作用:遍历顺序栈,成功返回P/{inti,j=0;for(i=s->top;i>=0;i-){printf("%dn,s->data[i]);/*因datatype不同而不同*/j++;if(j%!0==0)printf(',M);}printf(nn);return1;}intConversation_Seqstack(intN,intr)/*数制转换函数(顺序栈

5、)1•先决条件:具有置空栈,入栈,出栈函数2•函数作用:将N转换为r进制的数*/{Scqstack*s;datatypex;printf(n%d转为%d进制的数为:“,N,r);/*以后可以删除去*/s=Init_Seqstack();doPush_Seqstack(s$N%r);N=N/r;}whilc(N);while(Pop_Seqstack(s,&x)){if(x>=10)/*为了能转为十进制以上的*/printf(”%c”,x+55);elseprintf(”%d”,x);)free(s);/*释放顺序栈*/printf(nM);retur

6、n1;}4.主函数intmain(){Scqstack*s;intchoice;datatypex;do{printfCU.置空栈2•判栈空3•入栈4•出栈5•収栈顶元素6•遍历7•退出「);printf(H请输入选择(1〜7):”);scanf(H%d'&choice);getchar();switch(choice)case1:s=Init_Seqstack();if(s)printf("B空栈成功!H);break;case2:if(Empty_Seqstack(s))printf(”此为空栈An”);elseprintf(''此不为空栈.

7、M);;break;case3:printf("请输入一个整数:”);scanf(”%d”,&x);if(Push_Seqstack(s,x))printf(n入栈成功An”);elseprintf(',栈已满,无法入栈AnM);;break;case4:if(Pop_Seqstack(s,&x))printf("出栈成功,出栈元素为:%d”,x);elseprintf(”出栈失败,因栈为空.u);break;case5:if(Top_Seqstack(s,&x))print”取栈顶元素成功,栈顶元素为:%d”,x);elseprintf

8、(“取栈顶元素失败,因栈为空AiT);break;case6:Printf_Se

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。