第一次实验:栈与队列的实现及应用
一、实验目的
1、 理解栈的存储结构及基本操作实现。
2、 掌握应用栈解决问题的方法。
3、 掌握队列的存储结构及基本操作实现,并能在相应的应用问题中正确选用它
们。
二、实验要求
1、 硬件环境要求:PC 机;
2、 使用的软件名称、版本号以及模块:
Windows 环境下的 Code::Blocks20.03 或 DEV C++ 5.10 及以上。
三、实验内容
1、 验证性实验:实现链栈的基本操作:
编写一个程序 LinkStack.cpp (或.c),实现链栈的各种基本运算(假设栈中元
素类型 ElemType 为 double);
(1) 初始化栈 S。
(2) 判断栈是否为空。
(3) 将元素 3.0、5.0、7.0、10.0、20.0 依次进栈。
(4) 输出栈顶元素。
(5) 将栈中元素依次出栈并输出。
(6) 判断栈是否为空。
(7) 销毁栈。
2、 验证性实验:实现循环队列的基本操作:
编写一个程序 SqQueue.cpp (或.c),实现循环队列的各种基本运算(假设队中
元素类型 QElemType 为 char);
(1) 初始化队列 Q。
(2) 判断队列是否为空。
(3) 将元素 Z、X、C 依次入队。
(4) 出队一个元素并输出。
(5) 输出队列的长度。
(6) 将元素 V、B、N 依次入队。
(7) 将队中元素依次出队并输出。
(8) 销毁队列。
3、 设计性实验:设从键盘输入一整数的序列
1
,
2
,
3
, ⋯ ,
,试设计算法实现:
用栈结构存储输入的整数,当
≠ 0时 ,将
进栈;当
= 0时,将栈顶元素
出栈并输出。算法应对异常情况(栈满等)给出相应信息。
四、实验总结
将所有代码及实验结果截图附在实验报告中,并在实验报告中对本次实验内
容进行总结。