数据结构顺序栈实验报告

数据结构顺序栈实验报告

ID:9041144

大小:678.42 KB

页数:7页

时间:2018-04-15

数据结构顺序栈实验报告_第1页
数据结构顺序栈实验报告_第2页
数据结构顺序栈实验报告_第3页
数据结构顺序栈实验报告_第4页
数据结构顺序栈实验报告_第5页
资源描述:

《数据结构顺序栈实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一、设计人员相关信息1.设计者姓名、学号和班号:12地信李晓婧120122429832.设计日期:2014.3.上机环境:VC++6.0二、程序设计相关信息1.实验题目:编写一个程序,实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序,完成如下功能:(1)初始化栈(2)判断栈是否为空(3)依次进栈元素a,b,c,d,e(4)判断栈是否为空(5)输出栈长度(6)输出从栈顶到栈底元素(7)输出出栈序列(8)判断栈是否为空(9)释放栈2.实验项目组成:栈的初始化、销毁、判断是否为空、进栈、出栈、取栈顶元素。3.实验项目的程序结

2、构(程序中的函数调用关系图):MainInitStackDestroyStackStackEmptyPushPopGetPop1.实验项目包含的各个文件中的函数的功能描述:(1)初始化栈InitStack:建立一个新的空栈,实际上将栈顶指针指向-1即可。(2)销毁栈DestroyStack:释放栈占用的存储空间(3)判断栈是否为空StackEmpty:栈为空的条件是s->op==-1。(4)进栈Push:在栈不满的条件下,先将栈顶指针增1,然后在栈顶指针指向位置插入元素e。(5)出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减1.

3、(6)取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给e。2.算法描述或流程图:#include"stdio.h"#include"malloc.h"#include#defineMaxSize50typedefcharElemType;typedefstruct{ElemTypedata[MaxSize];inttop;/*栈顶指针*/}SqStack;//定义顺序栈类型voidInitStack(SqStack*&s)/*初始化*/{s=(SqStack*)malloc(sizeof(SqStack));s->top

4、=-1;//栈顶指针置为-1}voidDestroyStack(SqStack*&s)/*销毁*/{free(s);}intStackEmpty(SqStack*s)/*判断是否为空*/{return(s->top==-1);}intpush(SqStack*&s,ElemTypea[],intn){inti;if(s->top==MaxSize-1)//栈满的情况,即栈上溢出return0;for(i=0;itop++;//栈顶指针增1s->data[s->top]=a[i];//元素e放在栈顶指针处}return1;}int

5、Pop(SqStack*&s,ElemType&e)/*出栈一个元素*/{if(s->top==-1)//栈为空的情况,即栈下溢出return0;e=s->data[s->top];//取栈顶元素s->top--;//栈顶指针减1return1;}intGetTop(SqStack*s,ElemType&e)/*取栈顶元素*/{if(s->top==-1)//栈为空的情况,即栈下溢出return0;e=s->data[s->top];//取栈顶元素return1;}intStackLength(SqStack*s)/*求栈长度*/{return(s-

6、>top+1);}voidDispStack(SqStack*s){inti;for(i=s->top;i>=0;i--)printf("%c",s->data[i]);printf("");}voidmain(){inti,j;ElemTypestr[5]={'a','b','c','d','e'};//定义字符数组SqStack*st;//定义栈InitStack(st);/*初始化*/i=StackEmpty(st);//判断栈是否为空if(i==0)printf("顺序栈非空");elseprintf("顺序栈为空");push(

7、st,str,5);//进栈j=StackEmpty(st);if(j==0)printf("顺序栈非空");elseprintf("顺序栈为空");printf("栈长度为:%d",StackLength(st));//输出栈长度printf("出栈序列:");DispStack(st);//输出栈StackEmpty(st);DestroyStack(st);}1.实验数据和实验结果:1.出现的问题及解决方案:(1)(2)(3)解决方案:(1)添加typedefcharElemType;(2)(3)一、程序盘提交的程序盘应包含全部

8、的源程序清单和可执行文件。

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

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

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