欢迎来到天天文库
浏览记录
ID:61784618
大小:68.00 KB
页数:5页
时间:2021-03-20
《顺序栈(实验报告).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆电子工程职业学院实验报告课程《数据结构和算法》班级软件1017学号2010180210姓名敬焱彬成绩实验名称:顺序栈实验目的:编一个顺序栈实现入栈、出栈的功能。实验步骤:1.定义机构体2.定义栈的初始化、入栈、出栈、显示栈中元素,的相关函数。3.在mian()函数中调用这些函数,达到相应的功能。实验数据记录:(源代码及执行过程)#include#defineM20typedefstruct{inta[M];inttop;}Stack;Stackp;voidstackloading(S
2、tackp)//栈的初始化{p->top=-1;}intstackjudge(Stackp)//判断栈是否为空{if(p.top<=-1)return0;elsereturn1;}intstackappend(Stackp,intx)//入栈{if(p->top>=M-1){printf("栈满,已经无法入栈!重新");return0;}else{p->top++;p->a[p->top]=x;return1;}}intstackdel(Stackp,intd)//出栈{if(p->top<=-1){pri
3、ntf("栈已空,无元素出栈!");return0;}else{d=p->a[p->top];p->top--;return1;}}intstacktop(Stackp,intd){if(p->top<=-1){printf("栈已空");return0;}else{d=p->a[p->top];return1;}}voidstackshow(Stackp)//显示栈元素{printf("显示栈元素:");inti;if(p.top!=-1){for(i=0;i<=p.top;i++)printf(
4、"%dt",p.a[i]);}else{printf("栈已空!!!,无元素显示!");}printf("");}voidmain(){Stackp;inti,y,z,n,chose;stackloading(&p);//建立栈并初始化for(i=1;i<=40;i++)printf("─");printf("顺序栈操作菜单:t");printf("①入栈t②出栈t③退出t(提示:输入数字)");for(i=1;i<=40;i++)printf("─");do{printf("选择:");
5、scanf("%d",&chose);switch(chose){case1:printf("请输入要入栈的元素个数:");scanf("%d",&n);printf("输入%d个元素:",n);for(i=0;i<=n-1;i++){scanf("%d",&y);stackappend(&p,y);}stackshow(p);//显示上面输入的元素if(stackjudge(p)==0){printf("栈中无数据,请重新输入!");continue;}break;case2:if(p.top<=-1
6、){printf("栈空,不能出栈,请先入栈!重新");continue;}printf("请输入要出栈的元素个数:");scanf("%d",&n);if(n-1>p.top){printf("出栈个数大于栈中已有的元素个数!重新");continue;}printf("出栈%d个元素:",n);for(i=1;i<=n;i++){stackdel(&p,&z);printf("%dt",z);}printf("");stackshow(p);//显示栈元素break;}}while(cho
7、se!=3);}程序运行截图1.2实验结论及思考题:Ok2010年4月24日教师评语:年月日
此文档下载收益归作者所有