实验三-数据结构-队列 下载本文

内容发布更新时间 : 2024/5/3 7:12:32星期一 下面是文章的全部内容请认真阅读。

软件学院数据结构课程实验报告

2015 ~2016学年第一学期 2014 级专业 班级:学号:姓名:

实验三队列的基本操作及其应用 一、实验目的

(1)掌握链接存储队列的进队和出队等基本操作。 (2)掌握环行队列的进队和出队等基本操作。

(3)加深对队列结构的理解,逐步培养解决实际问题的编程能力。 二、实验环境

1. PC机一台,VC6.0或CodeBlocks 三、实验要求

(1)编写链接队列的基本操作函数。 typedef struct QNode { int data; struct QNode *next; }QNode,*QueuePtr; typedef struct{

QueuePtr front; //队头指针 QueuePtr rear; //队尾指针 }LinkQueue;

①进队操作 EnQueue(LinkQueue &Q, int e)

②出队操作,队空DeQueue(LinkQueue &Q, int &e) ③输出队列中元素 0utputQueue(LinkQueue Q) (2)调用上述函数实现下列操作,操作步骤如下。 ①调用进队函数建立一个队列。 ②读取队列中的第一个元素。 ③从队列中删除元素。 ④输出队列中的所有元素。

注意每完成一个步骤就必须及时输出队列中元素,以便观察操作结果。 (3)编写环型队列的基本操作函数。

#define MAXSIZE 100 //最大队列长度,最多只能插入MAXSIZE-1个数据 typedef struct { int *base; //初始化的动态分配存储空间 int front; //头指针,若队列不为空,指向队列头元素 int rear; //为指针,若队列不为空,指向队列尾元素的下一个位置 }SqQueue;

①进队操作,返回1为队满 EnQueue(SqQueue &Q, int e) ②出队操作,返回1为队空 DeQueue(SqQueue &Q, int &e) ③输出队列中元素 OutputQueue(SqQueue &Q) (4)调用上述函数实现下列操作,操作步骤如下:

①调用进队函数建立一个队列。 ②读取队列中的第一个元素。 ③从队列中删除元素。 ④输出队列中的所有元素。

注意每完成一个步骤就必须及时输出队列中元素,以便观察操作结果。 调试内容: //链接队列

(1)建立一个队列的功能

1.输入的形式和输入值的范围:输入若干正整数,用空格分隔,用0来表示结束。 2.输出的形式:按输入顺序输出。

3.测试数据:输入5 2 3 6 9 0后,输出5 2 3 6 9 (2)取队头元素功能 1.取出队头元素是:5

2.输出队列元素是:5 2 3 6 9 (3)删除队头元素功能 1.删除队列数据元素是:5 2.输出队列元素是:2 3 6 9 (4)输出队列所有元素功能 输出队列所有元素是:2 3 6 9 (5)结束功能 输入0结束程序! //环型队列

(1)初始化队列

(2)建立一个队列的功能

1.输入的形式和输入值的范围:输入若干正整数,用空格分隔,用0来表示结束。 2.输出的形式:按输入顺序输出。

3.测试数据:输入11 12 13 14 15 0后,输出11 12 13 14 15 (3)取队头元素功能 1.取出队头元素是:11

2.输出队列元素是:11 12 13 14 15 (4)删除队头元素功能 1.删除队列数据元素是:11 2.输出队列元素是:12 13 14 15 (5)输出队列所有元素功能

输出队列所有元素是:12 13 14 15 (6)进队功能

1.输入进队的元素:16 2.输出所有的 (7)结束功能 输入0结束程序!

四、实验详细步骤与代码 五、实验总结