链栈实验

时间:2022-04-06 08:00:08 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


实验四 链栈

一、实验目的

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.wddqw.com/doc/43872d606aeae009581b6bd97f1922791688bee2.html