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

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

ID:20798476

大小:21.12 KB

页数:7页

时间:2018-10-16

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

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

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

2、义顺序栈的存储结构typedefstruct{elemtypestack[MAXNUM];inttop;}sqstack;//初始化顺序栈voidinitstack(sqstack*p){if(!p)printf("error");p->top=-1;}//入栈voidpush(sqstack*p,elemtypex){}//出栈elemtypepop(sqstack*p){}//获取栈顶元素elemtypegettop(sqstack*p){elemtypex;if(p->top!=-1){x=p->stack[p-

3、>top];returnx;}else{printf("Underflow!");return0;}}//遍历顺序栈voidoutstack(sqstack*p){inti;printf("");if(p->top<0)printf("这是一个空栈!");for(i=p->top;i>=0;i--)printf("第%d个数据元素是:%6d",i,p->stack[i]);}//置空顺序栈voidsetempty(sqstack*p){}//主函数main(){sqstack*q;inty,cord;e

4、lemtypea;do{printf("第一次使用必须初始化!");printf("主菜单");printf("1初始化顺序栈");printf("2插入一个元素");printf("3删除栈顶元素");printf("4取栈顶元素");printf("5置空顺序栈");printf("6结束程序运行");printf("----------------------------------");printf("请输入您的选择(1,2,3,4,5

5、,6)");scanf("%d",&cord);printf("");switch(cord){case1:{q=(sqstack*)malloc(sizeof(sqstack));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("

6、n栈顶元素为:%d",y);outstack(q);}break;case5:{setempty(q);printf("顺序栈被置空!");outstack(q);}break;case6:exit(0);}}while(cord<=6);}1.栈的链式表示和实现编写一个程序实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能。(1)初始化链栈(2)入栈(3)出栈(4)取栈顶元素(5)置空链栈(6)遍历链栈参考代码:#include#include#incl

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

8、ntf("链栈被置空!");}//入栈voidpushlstack(linkstack*s,elemtypex){}//出栈elemtypepoplstack(linkstack*s){}//取栈顶元素elemtypestacktop(linkstack*s){if(s->top==0){printf("链栈空")

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

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

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