欢迎来到天天文库
浏览记录
ID:47513956
大小:110.50 KB
页数:20页
时间:2020-01-12
《栈的链式存储结构的表示和实现实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.数据结构实验报告册班级:学号:姓名:word资料.实验题目:栈的链式存储结构的表示和实现实验日期:实验要求:1.认真阅读和掌握本实验的相关知识。2.编写程序实现栈的链式存储方式。3.编写程序实现对栈空的判断以及栈的入栈和出栈操作、取栈顶元素。4.保存程序的运行结果,结合程序分析链式结构的特点。5.填写实验报告概要设计:(1)初始化链栈。(2)将链栈置空。(3)完成入栈和出栈操作,完成取栈顶元素操作。(4)选择菜单上的0,退出该程序的运行,结束实验内容。初始化栈操作,将栈的栈顶指针置为空值,即设栈S和栈顶指针top,S→top=nul
2、l。如果所建栈里有数据元素,要将其置空,同样也是将栈顶指针的值置为空值。入栈操作,向栈里插入数据元素。首先要为插入数据元素分配结点,将插入数据元素的值赋值给插入结点的数据域,其次修改栈顶指针的指向关系,即修改插入结点和栈顶指针的地址,最后修改栈顶指针。出栈操作,从栈里删除数据元素。首先要判断栈是否为空栈,如是空栈则操作失败。否则,进行出栈操作,修改删除结点和栈顶指针,最后释放删除结点。取栈顶元素。word资料.详细设计://链栈类型定义typedefintElemType;typedefstructstacknode{ElemType
3、data;stacknode*next;}StackNode;typedefstruct{stacknode*top;}LinkStack;//入栈voidpushLstack(LinkStack*s,ElemTypex){StackNode*p;p=newStackNode;p->data=x;p->next=s->top;s->top=p;}//出栈word资料.ElemTypepopstack(LinkStack*s){ElemTypex;StackNode*p;p=s->top;if(s->top==0){printf("栈空
4、,不能出栈!!");return0;exit(0);}x=p->data;printf("%d",x);s->top=p->next;deletep;returnx;}//取栈顶元素ElemTypeStackTop(LinkStack*s){ElemTypex;if(s->top==0){word资料.printf("链栈空!!");return0;}else{x=s->top->data;printf("当前链栈的栈顶元素为%d",x);return0;}}topXana1^anan-1a1toptop1,入栈示意图2,
5、出栈示意图word资料.开始ElemTypex;s->tope==0Printf(“栈空,不能出栈“)x=p->datas->top=p->next;deletep;returnx;结束ElemTypex;开始s->top==0Printf(“链栈为空X=s->top->data;returno;returno结束3,出栈4,取栈顶元素word资料.调试分析:在调试中出现以上错误,经过查找原程序发现scanf("%d",&cord);中少填写了地址符。在调试中出现了初始化以后,没有在主菜单中选择操作就直接运行入栈了,经过查找原程序发现
6、在swich语句中少了break。word资料.测试结果:实验成绩:word资料.实验题目:实验日期:实验要求:概要设计:word资料.详细设计:word资料.调试分析:测试结果:实验成绩:word资料.实验题目:实验日期:实验要求:概要设计:word资料.详细设计:word资料.调试分析:测试结果:实验成绩:word资料.实验题目:实验日期:实验要求:概要设计:word资料.详细设计:word资料.调试分析:测试结果:实验成绩:word资料.实验题目:实验日期:实验要求:概要设计:word资料.详细设计:word资料.调试分析:测试
7、结果:实验成绩:word资料
此文档下载收益归作者所有