南京工程学院
通信工程学院
实
验
报
数据结
告
构
课程名称
实验项目名称
栈、队列的设计实验
实验学生班级实验学生姓名实验时间实验地点20140416信息楼C205
实验成绩评定指导教师签字
年
月
日
1
f一、实验目的1.掌握栈的顺序表示和基本操作算法2.掌握队列的链式表示和基本操作算法
二、实验内容1.定义顺序栈的数据结构2.编写函数实现的栈的初始化、入栈、出栈、判断栈是否为空的算法,并应用与表达式的括号匹配检测。3.定义队列的链式数据结构4.编写函数实现链队列的入队列、出队列算法
三、实验要求:1.数据结构定义正确,程序编码规范。2.撰写实验报告,写出程序运行结果。3.分析算法,写出本次实验总结。四、算法说明:41数据结构定义:
defi
eSTACK_INIT_SIZE100defi
eSTACKINCREMENT10typedefi
tSElemTypetypedefstructSElemTypebaseSElemTypetopi
tstacksizeSqStack
42关键算法流程:421
2
f开始
始
初始化顺序栈Yp5
N
2插入一个元素
3
3删除栈顶元素
4
4置空顺序栈
5
5结束运行
结束
3
f422
开始
输入序号Yi5N
2入队列2
3出队列3
4遍历整个队列
5
4
退出
Y继续N继续N继续N继续N
结束
4
f五.测试结果5.1.1主菜单页面
512初始化顺序栈
513插入元素
514删除栈顶元素
515置空顺序栈
516结束
5
f521主菜单页面
522新建队列
523入队列
524出队列
525遍历整个队列
526退出
六分析与总结数据结构与C语言存在许多共通之处,上机操作实验是必要的,能检查出许多问题,这也是实验的目的所在,代码设置中出现了许多问题,包括了语法和逻辑的错误,对于数据结构的理解不深因而调试花费较多时间,也首次尝试了用图形画流程图,尽管花了一些时间但学到了很多。
6
fr