数据结构实验4 队列的表示与操作

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

注意事项:

在磁盘上创建一个目录,专门用于存储数据结构实验的程序。因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。

实验四队列的表示与操作

一、实验目的

1。掌握队列的掌握队列的类型定义,掌握循环队列的表示与实现方法

2.掌握队列的基本操作:判空、元素入队、出队,删除队头元素

基本操作:

InitQueue()构造一个空队列Q

QueueEmpty(Q) 判断队列是否为空

QueueLenght(Q)返回队列Q的元素个数,即队列的长度

GetHead(Q,&e)取队列Q的队头元素,并用e返回

InQueue(&Q,e) 将元素e入队列

OutQueue(&Q,&e)删除非空队列Q的队头元素,并用e返回其值

二、实验要求

1.认真阅读和掌握本实验的算法。

2.上机将本算法实现。

3.将程序补完整,打印出程序的运行结果,并结合程序进行分析。

三、实验内容

程序:设计一个循环队列的顺序表示和实现的演示程序

参考程序如下:

#include

#include

typedef int DataType;

#define Maxsize 100 /*最大队列长度*/

typedef struct {

DataType data[Maxsize]; /*初始化的动态分配存储空间*/

int front; /*头指针,若队列不空,指向队列头素元素的前一位置*/

int rear; /*尾指针,若队列不空,指向队列尾元素位置*/

}SeqQueue,*PSeqQueue;

PSeqQueue InitQueue(){

/*构造一个空队列Q*/

}

int QueueEmpty(PSeqQueue Q){

/*若队列Q为空队列,则返回TRUE,否则返回FALSE*/

}

int QueueLength(PSeqQueue Q){

/*返回Q的元素个数,即为队列的长度*/

}

int GetHead(PSeqQueue Q,DataType &e){

/*若队列不为空,则用e返回Q的队头元素,并返回OK;否则返回ERROR*/

}

int InQueue(PSeqQueue &Q,DataType e){

/*插入元素e为Q的新的队尾元素*/

}

int OutQueue(PSeqQueue &Q,DataType &e){

/*若队列不空,则删除Q的队头元素,用e返回其值,并返回OK,否则返回ERROR*/

}

void main(){

PSeqQueue Q;

int select;

DataType e;

if ((Q=InitQueue())==NULL)

cout<<"分配失败,即将退出程序!\n";

else/*否则显示队列操作的菜单,并选择相应的基本操作*/

do {

cout<<"1:判断队列是否为空\n";

cout<<"2:测试队列的长度\n" ;

cout<<"3:取队头元素值\n";

cout<<"4:向队列中插入一新元素\n";

cout<<"5:删除队列中一元素\n";

cout<<"0:结束\n";

cout<<"\n请输入您的选择:";

cin>>select;

cout<

switch (select) {

case 1:

if (QueueEmpty(Q)==1) cout<<"队列为空\n";

else cout<<"队列不为空\n";break;

case 2:

cout<<"队列长度为:"<

case 3:

if(GetHead(Q,e)==-1) cout<<"队列为空\n";

else cout<<"队首元素为:"<

case 4:

cout<<"请输入要插入的元素值:";

cin>>e;

if(InQueue(Q,e)==-1) cout<<"\n队列满\n";

else cout<<"\n元素成功插入\n";break;

case 5:

if(OutQueue(Q,e)==-1) cout<<"队列空,无数据可删\n"; else cout<<"删除元素为:"<

case 0:

cout<<"操作结束\n";break;

default:

cout<<"输入选择出错!\n";

}/*switch*/

cout<

}while (select);

}/*main_end*/

相关文档
最新文档