顺序队、链队实验报告 总结 下载本文

重庆工商大学

《数据结构》 课程实验报告封面

专业班级: 12计算机一班 学 号: 2012131152

学生姓名: 古应波 实验室: 10412

实验题目: 顺序队列、链队列的操作

指导教师: 梁新元 成 绩:

日期:2013年 10 月 日 第 6 周 星期 3 节次 4-5

评分表 序号 1 项目 算法思想 算法描述 实验数据与结果 总结 排版 正确性 友好性 可读性 健壮性 创新与多样性 总分 自评分 互评分 组长评分 教师评分 2 3 10 4 2 63 4 4 4 4 实验报告质量 2 3 4 5 6 源程序质量 10 合计 总分 评分人签字

7 8 9 第 0 页 共 17 页

目录

一、 实验题目 ---------------------------------------------------------------------------------------------------- 0

二、 实验目的 ---------------------------------------------------------------------------------------------------- 0

三、 实验内容 ---------------------------------------------------------------------------------------------------- 0

四、 实验要点与要求 ------------------------------------------------------------------------------------------- 0

五、 算法思想 ---------------------------------------------------------------------------------------------------- 0

六、 算法描述及流程图 ---------------------------------------------------------------------------------------- 3

七、 实验数据及实验结果 ------------------------------------------------------------------------------------- 4

八、 程序组成结构示意图 ------------------------------------------------------------------------------------- 4

九、 顺序队列调试截图 ---------------------------------------------------------------------------------------- 5

十、 链队列调试截图 ------------------------------------------------------------------------------------------- 7

十一、 顺序队列源代码 ---------------------------------------------------------------------------------------- 8

十二、 链队列源代码 ------------------------------------------------------------------------------------------ 11

第 1 页 共 17 页

实验报告的内容与要求

一、实验题目

顺序队列、链队列的基本操作 二、实验目的

了解顺序队列、链队列的结构特点及有关概念,掌握其基本操作算法。

三、实验内容

实现顺序队列和链队列的初始化、进队、出队、销毁操作

四、实验要点与要求

1. 处理的数据类型即ElemType的类型

基本版要求:整型、字符型

扩展版要求:字符串型(基础较好的同学) 2. 必须采用函数调用

五、算法思想

队列的特点是一端进,另一端出,由此需要定义队首指针和队尾指针,分别用于出队和进队的相关操作

bool InQuene(SqQuene *&q,ElemType d)//入队元素 {

if(q->rear==MaxSize-1) {

cout<<\队满!\<

第 0 页 共 17 页

} q->rear++; q->data[q->rear]=d; return true;

}

判断队列为满的条件为队尾指针指向数组最大处,由于出队的方式所限,顺序队会出现假溢出的情况,为了解决这个问题,可以采用环队或者链队代替。

链队算法如下

bool InNode(SqNode *&n,ElemType &e) {

QNode *q;

q=(QNode *)malloc(sizeof(QNode)); q->data=e; q->next=NULL; if(n->rear==NULL)

n->front=n->rear=q;

else { }

cout<<\入队成功!\<

}

n->rear->next=q; n->rear=q;

第 1 页 共 17 页