数据结构--04队列的基本操作

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

《数据结构》实验报告

院系光电与信息工程学院专业电子信息工程

姓名学号电话

2011级 2班 2013年4月20日

1.实验题目

实验4 .对列的基本操作

2.需求分析

(1)编写链接队列的基本操作函数,调用上述函数实现下列操作,操作步骤如下:调用进队函数建立一个队列。读取队列中的第一个元素。从队列中删除元素。输出队列中的所有元素。

(2)编写环型队列的基本操作函数。调用上述函数实现下列操作,操作步骤如下:

调用进队函数建立一个队列。

读取队列中的第一个元素。

从队列中删除元素。

输出队列中的所有元素。

链接队列:

①进队操作 EnQueue(LinkQueue *Q, QElemType e)

②出队操作,队空 DeQueue(LinkQueue *Q, QElemType *e)

③输出队列中元素 0utputQueue(LinkQueue Q)

环型队列:

①进队操作,返回1为队满 EnQueue(SqQueue *Q, QElemType e)

②出队操作,返回1为队空 DeQueue(SqQueue *Q, QElemType *e)

③输出队列中元素 outPutQMeue(SqQueue Q)

输入形式:整型数。

3.概要设计

(1)链接队列

ADT QNode{

数据对象:D={a i|a i∈IntegerSet,i=0,1,2,…,n,n≥0}

结构关系:R={|a i,a i+1 ∈D}

基本操作:

InitQueue(LinkQueue *Q)

操作前提:Q是一个未初始化的链接队列

操作结果:将Q初始化为一个空的链接队列

EnQueue(LinkQueue *Q, QElemType e)

操作前提:链接队列Q已存在

操作结果:将元素e插入到链接队列中

DeQueue(LinkQueue *Q, QElemType *e)

操作前提:链接队列Q已存在

操作结果:将链接队列Q中队头元素删除,删除的元素值通过e返回

0utputQueue(LinkQueue Q)

操作前提:链接队列Q已存在

操作结果:将链接队列Q中的元素显示到屏幕上

}

本程序包含5个函数:

主函数main()

初始化链接队列函数 InitQueue()

进队函数EnQueue()

出队函数DeQueue()

输出队列中元素函数 OutputStack()

各函数调用关系:主函数main调用其他四个函数

主函数的伪码

main()

{

定义变量i,n,m;

定义一个LinkQueue 变量Lq

初始化 Lq;

输入队列元素的个数;

For循环(i=1;i<=n;i++)

{调用EnQueue函数;}

输出队列中元素;

调用DeQueue函数;

显示删除的队头元素;

显示Lq;

(2)环形队列

ADT SqQueue{

数据对象:D={a i|a i∈IntegerSet,i=0,1,2,…,n,n≥0}

结构关系:R={|a i,a i+1 ∈D}

基本操作:

InitQueue(SqQueue &Q)

操作前提:Q是一个未初始化的环型队列

操作结果:将Q初始化为一个空的环型队列

EnQueue(SqQueue *Q,int e)

操作前提:环型队列Q已存在

操作结果:将元素e插入到队列中

DeQueue(SqQueue *Q,int *e)

操作前提:环型队列Q已存在

操作结果:将环型队列Q中队头元素删除,删除的元素值通过e返回 outPutQMeue(SqQueue *Q)

操作前提:环型队列Q已存在

操作结果:将环型队列Q中的元素显示到屏幕上

}

本程序包含5个函数:

主函数main()

初始化链接队列函数 InitQueue()

进队函数EnQueue()

出队函数DeQueue()

输出队列中元素函数 OutputStack()各函数调用关系:主函数main调用其他四个函数

函数的伪码

main()

{定义SqQueue 变量sq;

定义整型变量n,i,m;

构造空的环型队列;

输入队列的长度;

For循环(i=1;i<=n;i++)

{调用EnQueue函数;}

输出队列元素;

删除对头元素;

输出队列元素;

4.详细设计

(1)链接队列

(1)类型定义

typedef struct QNode{

int data;

struct QNode *next;

}QNode,*QueuePtr;

typedef struct {

QueuePtr front;

QueuePtr rear;

}LinkQueue;

基本操作的伪码算法

(1)初始化

void InitQueue(LinkQueue *Q){

Q->front=Q->rear==申请新结点;

Q->front->next=NULL;}

(2)进队

相关文档
最新文档