《数据结构与算法》实验报告模板

  • 格式:doc
  • 大小:59.50 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程系 实验报告封面

课程名称: 数据结构与算法

课程代码: SS1005

实验指导老师: 钟迅科

实验报告名称: Lab05 队列的实现

学生姓名: 张三 学号: 1140888888 教学班: FJ01 递交日期:2012年10月11日

我申明,本报告内的实验已按要求完成,报告完全是由我个人完成,并没有抄袭行为。我已经保留了这份实验报告的副本。

申明人(签名):

本实验报告包括以下几个内容:

一、实验(实践)目的

二、实验(实践)环境

三、实验(实践)实现过程

四、实验(实践)分析与总结

五、指导教师评语与评分

实验题目Lab05 队列的实现

实验地点B406 实验时间2012年10月11日

一、实验目的和要求

1、目的

1)掌握链式存储结构的队列的特点与实现;

2)掌握循环顺序存储结构的队列的特点与实现;

3)理解栈和队列的简单应用。

2、要求

1)验证链式队列的入队过程;

2)验证链式队列的出队过程;

3)验证顺序队列(循环队列)的入队过程;

4)验证顺序队列(循环队列)的出队过程;

5)利用栈的“后进先出”的特性与队列的“先进先出”的特性,编写程序判断回文。

二、实验环境(本实验的硬件和软件环境)

1)PC机;

2)Windows XP以上版本的操作系统;

3)Visual Studio 2010以上版本的开发工具;

4)项目文件:

LinkQueue.h和LinkQueue.cpp:实现队列链式存储结构的头文件和源代码;

SqQueue.h和SqQueue.cpp:实现队列顺序存储结构的头文件和源代码;

LinkStack.h和LinkStack.cpp:实现栈链式存储结构的头文件和源代码;

SqStack.h和SqStack.cpp:实现栈顺序存储结构的头文件和源代码。

三、实验实现过程

链式队列:

1) 在语句EnQueue(Q1,'a');处按“F9”设置断点①,按“F5”调试程序至断点处暂停(暂停序号0),然后按“F10”调试程序3次,每次程序暂停时记录数据。调试结束时按“Shift+F5”结束调试过程。

2) 取消其它断点,在语句DeQueue(Q1, temp);处按“F9”设置断点②,按“F5”调试程序至断点处暂停(暂停序号0),然后按“F10”调试程序3次,每次程序暂停时记录数据。

循环队列:

1) 取消其它断点,在语句EnQueue(Q2,'a');处按“F9”设置断点③,按“F5”调试程序至断点处暂停(暂停序号0),然后按“F10”调试程序5次,每次程序暂停时记录数据。观察第5次调试时队列中数据,分析入队EnQueue(Q2,'e');是否成功,并说明原因。

2) 取消其它断点,在语句DeQueue(Q2, temp);处按“F9”设置断点④,按“F5”调试程序至断点处暂停(暂停序号0),然后按“F10”调试程序4次,每次程序暂停时记录数据。

3) 取消其它断点,在语句EnQueue(Q2,'j');处按“F9”设置断点⑤,按“F5”调试程序至断点处暂停,然后按“F10”调试程序1次,程序暂停时记录数据。观察队列中数据,分析入队EnQueue(Q2,'j');是否成功,并说明原因。

四、实验结果、分析、总结

1)通过上述验证过程,总结链式结构和顺序结构在入队、出队操作时的异同:

相同点:

插入(入队)操作:在队尾位置进行,需要更新队尾rear指针;

删除(出队)操作:在队头位置进行,需要更新队头front指针。

不同点:

链式结构第一元素入队时,在更新队尾指针的同时也须更新队头指针;最后一个元素出队时,在更新队头指针的同时也须更新队尾指针。

顺序结构入队操作只需要更新队尾rear指针;出队操作只需要更新队头front指针。

2)判断回文的函数实现:

int Palindrome_Test(char str[])

{

SNode *S; LinkQueue Q;

InitStack(S); InitQueue(Q);

DataType ts,tq;

for(int i=0; i

{

Push(S,str[i]);EnQueue(Q,str[i]);

}

while(!StackEmpty(S))

{

Pop(S,ts);DeQueue(Q,tq);

if(ts!=tq) return 0;

}

return 1;

}

五、实验教师评语及成绩:

教师签名:批阅时间年月日