栈的顺序和链式存储的表示和实现.docx

栈的顺序和链式存储的表示和实现.docx

ID:59423883

大小:71.19 KB

页数:8页

时间:2020-09-03

栈的顺序和链式存储的表示和实现.docx_第1页
栈的顺序和链式存储的表示和实现.docx_第2页
栈的顺序和链式存储的表示和实现.docx_第3页
栈的顺序和链式存储的表示和实现.docx_第4页
栈的顺序和链式存储的表示和实现.docx_第5页
资源描述:

《栈的顺序和链式存储的表示和实现.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯最新资料推荐⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯实验三栈的顺序和链式存储的表示和实现实验目的:1.熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等。2.掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现。实验内容:1.栈的顺序表示和实现编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能。(1)初始化顺序栈(2)插入一个元素(3)删除栈顶元素(4)取栈顶元素(5)便利顺序栈(6)置空顺序栈#include#

2、include#defineMAXNUM20#defineelemtypeint//定义顺序栈的存储结构typedefstruct{elemtypestack[MAXNUM];inttop;}sqstack;//初始化顺序栈voidinitstack(sqstack*p){if(!p)printf("error");p->top=-1;}//入栈voidpush(sqstack*p,elemtypex){}//出栈elemtypepop(sqstack*p){}1⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

3、⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯最新资料推荐⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯//获取栈顶元素elemtypegettop(sqstack*p){elemtypex;if(p->top!=-1){x=p->stack[p->top];returnx;}else{printf("Underflow!");return0;}}//遍历顺序栈voidoutstack(sqstack*p){inti;printf("");if(p->top<0)printf("这是一个空栈!");for(i=p->top;i>=

4、0;i--)printf("第%d个数据元素是:%6d",i,p->stack[i]);}//置空顺序栈voidsetempty(sqstack*p){}//主函数main(){sqstack*q;inty,cord;elemtypea;2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯最新资料推荐⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯do{printf("第一次使用必须初始化!");printf("主菜单");printf("1初始化顺序栈");printf("2插入一个元

5、素");printf("3删除栈顶元素");printf("4取栈顶元素");printf("5置空顺序栈");printf("6结束程序运行");printf("----------------------------------");printf("请输入您的选择(1,2,3,4,5,6)");scanf("%d",&cord);printf("");switch(cord){case1:{q=(sqstack*)malloc(sizeof(sqstack)

6、);initstack(q);outstack(q);}break;case2:{printf("请输入要插入的数据元素:a=");scanf("%d",&a);push(q,a);outstack(q);}break;case3:{pop(q);outstack(q);}break;case4:{y=gettop(q);printf("栈顶元素为:%d",y);outstack(q);}break;case5:{setempty(q);printf("顺序栈被置空!");3⋯⋯⋯⋯⋯⋯⋯⋯⋯

7、⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯最新资料推荐⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯outstack(q);}break;case6:exit(0);}}while(cord<=6);}2.栈的链式表示和实现编写一个程序实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能。(1)初始化链栈(2)入栈(3)出栈(4)取栈顶元素(5)置空链栈(6)遍历链栈参考代码:#include#include#include#definenull0typedef

8、intelemtype;typedefstructstacknode{elemtypedata;stacknode*next;}stacknode;typedefstruct{stacknode*top;}linkstack;//初始化链栈voidinitstack(linkstack*s){s->top=null;printf("已经初始化链栈!");}//链栈置空voidsetempty

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

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

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