ImageVerifierCode 换一换
格式:DOCX , 页数:3 ,大小:17.78KB ,
资源ID:19053619      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19053619.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构栈的实验报告Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构栈的实验报告Word下载.docx

1、在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 1)、编写一个程序algo3-1.cpp,实现顺 的各种基本运算,并在此基础上设计一 程序并完成如下功能: (1)初始化栈s; (2)判断栈s是否非空; 序栈个主 (3)依次进栈元素a,b,c,d,e; (4)判断栈s是否非空; (5)输出出栈序列; (6)判断栈s是否非空; (7)释放栈。 图3.1 Proj3_1 工程组成 本工程Proj3_1的组成结构如图3.1所示。本工程的模块结构如图3.2所示。图中方框表示函数,方框中指出函数名,箭头方向表示函

2、数间的调用关系。 图3.2 Proj3_1工程的程序结构图 其中包含如下函数: InitStack(SqStack * s) /初始化栈S DestroyStack(SqStack * s) /销毁栈s StackEmpty(SqStack *s) /判断栈空 Push(SqStack * s,ElemType e) /进栈 Pop(SqStack * s,ElemType e) /出栈 GetTop(SqStack *s,ElemType e) /取栈顶元素 对应的程序如下: /文件名:algo3-1.cpp #include stdio.h #include malloc.h #defin

3、e MaxSize 100 typedef char ElemType; typedef struct ElemType dataMaxSize; int top; /栈顶指针 SqStack; void InitStack(SqStack * s) /初始化栈S s=(SqStack *)malloc(sizeof(SqStack); s- top=-1; /栈顶指针置为-1 void DestroyStack(SqStack * s) /销毁栈s free(s); bool StackEmpty(SqStack *s) /判断栈空 return(s- top=-1); bool Push(

4、SqStack * s,ElemType e) /进栈 if (s- top=MaxSize-1) /栈满的情况,即栈上溢出 return false; s- top+; /栈顶指针增1 s- datas- top=e; /元素e放在栈顶指针处 return true; bool Pop(SqStack * s,ElemType e) /出栈 if (s- top=-1) /栈为空的情况,即栈下溢出 return false; e=s- datas- top; /取栈顶指针元素的元素 s- top-;/栈顶指针减1 return true; bool GetTop(SqStack *s,Ele

5、mType e) /取栈顶元素 if (s- top=-1) /栈为空的情况,即栈下溢出 return false; /取栈顶指针元素的元素 return true; 设计exp3-1.cpp程序如下 /文件名:exp3-1.cpp #include stdio.h #include malloc.h #define MaxSize 100 typedef char ElemType; extern void InitStack(SqStack * extern void DestroyStack(SqStack * extern bool StackEmpty(SqStack *s); ex

6、tern bool Push(SqStack * s,ElemType e); extern bool Pop(SqStack * s,ElemType extern bool GetTop(SqStack *s,ElemType void main() ElemType e; SqStack *s; printf( 栈s的基本运算如下:n printf( (1)初始化栈sn InitStack(s); printf( (2)栈为%sn ,(StackEmpty(s)? 空 : 非空 ); printf( (3)依次进栈元素a,b,c,d,en Push(s, a Push(s, b Push

7、(s, c Push(s, d Push(s, e printf( (4)栈为%sn ,(StackEmpty(s)? printf( (5)出栈序列: while (!StackEmpty(s) Pop(s,e); printf( %c ,e); printf( n printf( (6)栈为%sn ,(StackEmpty(s)? printf( (7)释放栈n DestroyStack(s); 运行结果如下: 2)、编写一个程序algo3-2.cpp,实现链栈的各种基本运算,并在此基础上设计一个主程序并完成如下功能: (1)初始化链栈s; (2)判断链栈s是否非空; (3)依次进栈a,b

8、,c,d,e; (4)判断链栈s是否非空; (5)输出链栈长度; (6)输出从栈底到栈顶元素; (7)输出出队序列; (8)判断链栈s是否非空;图3.3 Proj3_2工程组成 (9)释放队列。 本工程Proj3_2的组成结构如图3.3所示。本工程的模块结构如图3.4所示。 图3.4 Proj3_2工程的程序结构图 其中包含如下函数: InitStack(LiStack * s) /初始化栈s DestroyStack(LiStack * s) /销毁栈 StackEmpty(LiStack *s) /判断栈是否为空 Push(LiStack * s,ElemType e) /进栈 Pop(L

9、iStack * s,ElemType e) /出栈 GetTop(LiStack *s,ElemType e) /取栈顶元素 对应的程序如下:algo3-2.cpp #include stdio.h #include malloc.h typedef char ElemType; typedef struct linknode ElemType data; /数据域 篇二:数据结构顺序栈实验报告 一、 设计人员相关信息 1. 设计者姓名、学号和班号:12地信李晓婧 12012242983 2. 设计日期:2014. 3. 上机环境:VC+6.0 二、 程序设计相关信息 1. 实验题目:编写一

10、个程序,实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序,完成如下功能: (1)初始化栈 (2)判断栈是否为空 (3)依次进栈元素a,b,c,d,e (4)判断栈是否为空 (5)输出栈长度 (6)输出从栈顶到栈底元素 (7)输出出栈序列 (8)判断栈是否为空 (9)释放栈 2. 实验项目组成:栈的初始化、销毁、判断是否为空、进栈、出栈、取栈顶元素。 3. 实验项目的程序结构(程序中的函数调用关系图): 4. 实验项目包含的各个文件中的函数的功能描述: (1)初始化栈InitStack:建立一个新的空栈,实际上将栈顶指针指向-1即可。 (2)销毁栈DestroyS

11、tack:释放栈占用的存储空间 (3)判断栈是否为空StackEmpty:栈为空的条件是s- op=-1。 (4)进栈Push:在栈不满的条件下,先将栈顶指针增1,然后在栈顶指针指向位置插入元素e。 (5)出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减1. (6)取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给e。 5. 算法描述或流程图: #include stdio.h #include malloc.h #include stdlib.h #define MaxSize 50 typedef char ElemType; typedef struct El

12、emType dataMaxSize; /*栈顶指针*/ SqStack;/定义顺序栈类型 void InitStack(SqStack* s)/*初始化*/ s=(SqStack*)malloc(sizeof(SqStack);/栈顶指针置为-1 void DestroyStack(SqStack * s)/*销毁*/ free(s); int StackEmpty(SqStack*s)/*判断是否为空*/ return(s- top=-1); int push(SqStack * s,ElemType a,int n) int i; if(s- top=MaxSize-1)/栈满的情况,即

13、栈上溢出 return 0; for(i=0;i i+) s- top+; /栈顶指针增1 s- datas- top=ai;/元素e放在栈顶指针处 int Pop(SqStack* s,ElemType e)/*出栈一个元素*/ if(s- top=-1)/栈为空的情况,即栈下溢出 return 0; /取栈顶元素 s- top-; /栈顶指针减1 return 1; return 1; int GetTop(SqStack *s,ElemType e)/*取栈顶元素*/ if(s- top=-1) /栈为空的情况,即栈下溢出 return 0;/取栈顶元素 return 1; int St

14、ackLength(SqStack *s)/*求栈长度*/ return(s- top+1); void DispStack(SqStack *s) void main() int i,j; ElemType str5= a , b , c , d , e /定义字符数组 SqStack *st;/定义栈 InitStack(st);/*初始化*/ i=StackEmpty(st);/判断栈是否为空 if(i=0) int i; for(i=s- i i-) printf( %c ,s- datai); printf( n printf( 顺序栈非空n else printf( 顺序栈为空n

15、push(st,str,5); /进栈 j=StackEmpty(st); if(j=0) printf( 顺序栈非空n else printf( 顺序栈为空n printf( 栈长度为:%dn ,StackLength(st); /输出栈长度 printf( 出栈序列:n DispStack(st); /输出栈 StackEmpty(st); DestroyStack(st); 6. 实验数据和实验结果: 篇三:数据结构-实验报告顺序栈 (封面) 学 生 实 验 报 告 学 院: 国际经贸学院 课程名称: 数据结构 专业班级: 09电子商务 姓 名: 学 号: 学生实验报告 (经管类专业用)

16、 一、实验目的及要求: 1、目的 通过实验,实现顺序栈的各种基本运算。 2、内容及要求 编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成下列功能: (1)初始化栈S。 (2)判断栈S是否非空。 (3)依次进栈元素a,b,c,d,e。 (4)判断栈S是否非空。 (5)输出栈的长度。 (6)输出从栈顶到栈底的元素。 (7) 输出出栈序列; (8) 判断链栈S是否为空; (9)释放链栈 二、仪器用具: 三、实验方法与步骤: 一、查阅顺序栈等相关资料,熟悉顺序栈基本概念和流程 二、“开展”顺序栈实验流程 三、整理实验数据和文档,总结实验的过程,编写实验报告 四、实验结果与数据处理

17、: 1、顺序栈的代码: #include stdio.h #include malloc.h #define MaxSize 100 typedef char ElemType; void InitStack(SqStack * s) void ClearStack(SqStack * s) int StackLength(SqStack *s) s=(SqStack *)malloc(sizeof(SqStack); free(s); return(s- top+1); int StackEmpty(SqStack *s) int Push(SqStack * s,ElemType e) i

18、nt Pop(SqStack * s,ElemType e) int GetTop(SqStack *s,ElemType e) void DispStack(SqStack *s) return(s- top=-1); if (s- top=MaxSize-1) return 0; s- datas- top=e; return 1; if (s- top=-1) return 0; s- top-; int i; for (i=s- i i-) printf( %c ,s- datai); printf( n void main() / 主函数 SqStack S=(SqStack *)m

19、alloc(sizeof(SqStack); printf( (1)初始化顺序栈n InitStack(S); printf( (2)判断顺序栈是否为空:n StackEmpty(S); printf( (3)依次进栈元素a,b,c,d,e:n Push(S, a Push(S, b Push(S, c Push(S, d Push(S, e printf( (4)判断顺序栈是否为空: printf( (5)输出栈长度:%dn ,StackLength(S); printf( (6)输出从栈顶到栈底的元素:n StackTraverse(S); printf( (7)读出栈顶元素:%dn ,GetTop(S,e); printf( (8)删除栈顶元素:%dn ,Pop(S,e); printf( (9)输出从栈顶到栈底的元素: printf( (10)判断顺序栈是否为空n StackEmpty(S);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1