《顺序栈的基本操作》由会员分享,可在线阅读,更多相关《顺序栈的基本操作(7页珍藏版)》请在金锄头文库上搜索。
1、顺序栈的基本操作(总5页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21 year.March上机实验报告学 院:计算机与信息技术学院专 业:计算机科学与技术(师范)课程名称:数据结构实验题11:顺序栈的基本操作班级序号:师范1班学号:2731学生姓名:邓雪指导教师:杨红颖完成时间:2015年12月25号实验目的:1. 熟悉掌握栈的定义、结构及性质;2. 能够实现创建一个顺序栈,熟练实现入栈、出栈等栈的基本操作;3. 了解和掌握栈的应用。一、实验环境:Microsoft Visual C+二、实验内容及要求:栈是一种特殊的线
2、性表,逻辑结构和线性表相同,只是其运算规则有更多的限制,故乂称为受限的线性表。建立顺序栈,实现如下功能:1建立一个顺序栈2. 输出栈3. 进栈4. 退栈5. 取栈顶元素6清空栈7判断栈是否为空进行栈的基本操作时要注意栈“后进先出“的特性。四、概要设计:1、通过循环,山键盘输入一串数据。创建并初始化一个顺序 栈。2、编写实现相关功能函数,完成子函数模块如下。3、调用子函数,实现菜单调用功能,完成顺序表的相关操作五、代码:#in cludeo#include#define maxsize 64 typedef int datatype;立一个顺序栈n“);printf(ttt2.输出栈n“);pr
3、intf(ttt3.进栈n“);printf(ttt4.退栈n“);printf(”ttt5.取栈顶元素n);printf(”ttt6.清空栈n“);printf(ttt7.判断栈是否为空n”);printf(ttt8.结束程序n“);printf(ttn);doprintf(nn请选择想要实现的功能:”); scanf(%dz&i);switch(i)case l:s=SET(s);break;case 2:print(s);printfCXnjbreak;case3:s=PUSH(s);Pnnt(s);printf(n);break;case 4:s=P0P(s);Print(s);pri
4、ntf(n);break;case 5:T0P(s);break;case6:SETNULL(s);Print(s);printf(n);break;case 7:j=EMPTY(s);if(j=Dprintf(“空栈n“);elseprintf(”非空栈n“);break;case 8:printf( 谢 谢 使 用nn);exit (0);while(l);return 0;六、运行界面菜单欢迎使用2输岀栈3 进檢4 退核5 取枝顶元素6淸空栈了判断視是否为空8 结束程序淸选择想姜实现的功能:功能G、作业数据结构程序邓雪3.|诵栈基本操作DGbugzh8nc3ozuoexbXA请选择想要实
5、现的功能:1请输入顺序栈元素1整塑,以3络束);1 2 3 4 5 6 7 0 顺序栈建立成功请选择想要实现的功能:27 6 5 H 3 2 1请选择想要实现的功能:3 你想要插入的数字:99 7 6 5 U 3 2 1请选择想要实现的功能:M 删除的栈顶元素是:97 6 5 U 3 2 1请选择想蜜实现的功能:” G:作业数据结构程序邓雪3游栈基本操作Debugzh8ncaozuo.exA黑麟翳严的功能:6鈔要实现的功能:7豎豎竺弩離用Press any keij to continue七、实验中遇到的问题及总结1. 在写主函数时,如果是用void main的形式,那么可以不用有返回值, 如果是int main或status main的话,要有返回值,即末尾要有return语句。2. 应当注意,在算法POP中,删去栈顶元素只要将栈顶指针减1即可,但 该元素在下次进栈之前仍是存在的。2.本次实验加强了对栈的理解和认识以及栈的应用,实现栈的相关操作。八、参考文献数据结构一一用C语言描述