【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《链栈实验》,欢迎阅读!
实验四 链栈
一、实验目的
1、 掌握用VC工具上机调试链栈的基本方法;
2、 掌握链栈的基本操作,链栈初始化、链栈入栈、链栈出栈、判断链栈是否为空、
求队列长度以及链栈销毁操作; 3、 掌握栈在链式映像下的操作实现。 二、实验学时
2学时 三、实验类型
验证型 四、实验内容
1、 链栈的初始化、链栈入栈、链栈出栈、判断链栈是否为空、求链栈长度、链栈输
出及链栈销毁操作的实现; 2、 通过设计统一界面来调用链栈的基本操作的实现。 五、实验原理
1、 链栈概述
链栈是栈这一受限的线性表的链式映像实现。为方便操作,链栈采用带头结点的单链表存储结构,若链栈为空则栈头结点指针域为空;若链栈非空则栈头结点指向链栈的第一个元素,操作是可将其赋值给工作指针进行相应的各种操作即可。
2、链栈基本算法
(1)LinkStackInitiate(S); 初始化链栈S。
(2)LinkStackEmpty(S); 判断链栈S非空否操作 。
(3)EnLinkStack (S,x); 链栈S入栈操作,在链栈S的栈顶插入数据元素x。
(4)DeLinkStack (S,d); 链栈S出栈操作,把链栈S的栈顶元素删除并由参数d带回。 (5)LenLinkStack (S); 求链栈S长度。 (6)DisLinkStack (S); 输出链栈S。 (7)DestroyLinkStack(S);销毁链栈S。 3、模块层次
要求画出链栈的模块层次图。如图所示
main()
LinkStackInitiateLinkStackEmptyEnLinkStack DeLinkStackLenLinkStackDisLinkStackDestroyLinkStack
图7 链栈的模块层次图
4、关键算法NS图
六、实验步骤及要求
用VC语言编程实现建立一个链栈,并在此链栈中入栈若干个元素和出栈若干个元素 1. 链栈初始化;
2. 通过键盘读取元素建立链栈S;
3. 判断此循环队列是否为空; 4. 5. 6. 7.
输出此链栈;
求此时链栈S长度;
链栈S若干个元素入栈; 求此时链栈S长度;
8. 输出此链栈S;
9. 链栈S出栈若干个元素; 10. 判断此链栈S是否为空; 11. 求此时链栈S长度; 12. 输出此链栈S; 13. 销毁此链栈S; 14. 程序完成。
七、界面要求
1、界面统一。如下图所示:
图8 链栈统一界面图
2:界面可以不统一,按自己设计的形式。 八、思考问题
结合实验过程,回答下列问题:
1、 何时采用循环队列处理问题为最佳选择。 九、实验报告要求
1、 根据对队列这一受限的线性表的理解,如何实现循环队列; 2、 实现循环队列的入队和出队操作的程序设计思路; 3、 何时选用循环队列去解决实际问题; 4、 采用循环队列解决问题的特点;
5、 调试程序过程中遇到的问题及解决方案;
6、 本次实验的结论与体会。
本文来源:https://www.wddqxz.cn/43872d606aeae009581b6bd97f1922791688bee2.html