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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构栈和队列实验报告Word格式文档下载.doc

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所示。图中方框表示函数,方框中指出函数名,箭头方向表示函数间的调用关系。mainInitStackDestroyStackStackEmptyPushPopGetTop图3.2

2、Proj3_1工程的程序结构图其中包含如下函数:InitStack(SqStack *&s)/初始化栈SDestroyStack(SqStack *&s)/销毁栈sStackEmpty(SqStack *s)/判断栈空Push(SqStack *&s,ElemType e)/进栈Pop(SqStack *&s,ElemType &e)/出栈GetTop(SqStack *s,ElemType &e)/取栈顶元素 对应的程序如下: /文件名:algo3-1.cpp#include malloc.h#define MaxSize 100typedef char ElemType;typedef s

3、truct ElemType dataMaxSize;int top;/栈顶指针 SqStack;void InitStack(SqStack *&s=(SqStack *)malloc(sizeof(SqStack);s-top=-1;/栈顶指针置为-1void DestroyStack(SqStack *&free(s);bool StackEmpty(SqStack *s)/判断栈空return(s-top=-1);bool Push(SqStack *&if (s-top=MaxSize-1)/栈满的情况,即栈上溢出return false;top+;/栈顶指针增1datas-top=

4、e;/元素e放在栈顶指针处return true;bool Pop(SqStack *&top=-1)/栈为空的情况,即栈下溢出e=s-top;/取栈顶指针元素的元素top-;/栈顶指针减1 bool GetTop(SqStack *s,ElemType &设计exp3-1.cpp程序如下/文件名:exp3-1.cpp/栈顶指针extern void InitStack(SqStack *&s);extern void DestroyStack(SqStack *&extern bool StackEmpty(SqStack *s);extern bool Push(SqStack *&s,E

5、lemType e);extern bool Pop(SqStack *&e);extern bool GetTop(SqStack *s,ElemType &void main()ElemType e;SqStack *s;printf(栈s的基本运算如下:n); (1)初始化栈snInitStack(s); (2)栈为%sn,(StackEmpty(s)?空:非空); (3)依次进栈元素a,b,c,d,enPush(s,abcde (4)栈为%sn (5)出栈序列:while (!StackEmpty(s)Pop(s,e);printf(%c ,e); (6)栈为%sn (7)释放栈nDe

6、stroyStack(s);运行结果如下:2)、编写一个程序algo3-2.cpp,实现链栈的各种基本运算,并在此基础上设计一个主程序并完成如下功能:(1)初始化链栈s;(2)判断链栈s是否非空;(3)依次进栈a,b,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 DestroyStac

7、k(LiStack *&s)/销毁栈StackEmpty(LiStack *s)/判断栈是否为空Push(LiStack *&Pop(LiStack *&GetTop(LiStack *s,ElemType &e)/取栈顶元素对应的程序如下:algo3-2.cpptypedef struct linknodeElemType data;/数据域struct linknode *next;/指针域 LiStack;void InitStack(LiStack *&s)/初始化栈ss=(LiStack *)malloc(sizeof(LiStack);next=NULL;void DestroyS

8、tack(LiStack *&LiStack *p=s,*q=s-next;while (q!=NULL)free(p);p=q;q=p-free(p);/此时p指向尾节点,释放其空间bool StackEmpty(LiStack *s)/判断栈是否为空next=NULL);void Push(LiStack *&LiStack *p;p=(LiStack *)malloc(sizeof(LiStack);p-data=e;/新建元素e对应的节点*pnext=s-/插入*p节点作为开始节点next=p;bool Pop(LiStack *&if (s-next=NULL)/栈空的情况p=s-/p指向开始节点e=p-data;next=p-/删除*p节点/释放*p节点bool GetTop(LiStack *s,ElemType &next-设计 exp3-2.cpp 主程序exp3-2.cppextern void InitSta

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

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