1 / 12
文档名称:

数据结构实验报告-队列.doc

格式:doc   大小:184KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告-队列.doc

上传人:taoapp 2021/10/31 文件大小:184 KB

下载得到文件列表

数据结构实验报告-队列.doc

文档介绍

文档介绍:数据结构实验报告
题目:编制一个顺序队列的实现和运算的程序
班级:11级网络工程
姓名(学号):丁晓娟、杨梦莹、锁佩琳、张凤友、胡景林、倪华夏
完成日期:
需求分析
1、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中的规定命令;相应的输入数据和运算显示在其后。
2、程序执行命令包括:
1)构造一个顺序队列
2)对其进行插入元素
3)对其进行删除元素
4)对其取对头元素
5)对其求队列的长度
3、测试数据:
可由使用者自己输入
二、概要设计
ADT Queue{
数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n>=0}
数据关系:R={<ai-1,ai>| ai-1,ai∈D,i=2,…,n}//约定其中a1端为队列头,an端为队列尾
基本操作:
InitQueue (&Q)
操作结果:构造一个空队列Q 。
DestroyQueue(&Q)
初始条件:队列Q已存在。
操作结果:队列Q被销毁,不再存在。
ClearQueue(&Q)
初始条件:队列Q已存在。
操作结果:将Q清为空队列。
QueueEmpty(&Q)
初始条件:队列Q已存在。
操作结果:若Q为空队列,则返回TRUE,否则返回FALSE。
QueueLength(&Q)
初始条件:队列Q已存在。
操作结果:返回Q的元素个数,即对列的长度。
GetHead(Q,&e)
初始条件:Q为非空队列。
操作结果:用e返回Q的对头元素。
EnQueue(&Q,e)
初始条件:队列Q已存在。
操作结果:插入元素e为新的队尾元素。
DeQueue(&Q,&e)
初始条件:Q为非空队列。
操作结果:删除Q的对头元素,并用e返回其值。
} ADT Queue
三、详细设计
#include<>
#include<>
#include<>
#define maxqsize 100 //队列最大长度
typedef int status;
typedef int qelemtype;
//顺序队列操作
int t;//全称变量
typedef struct {
qelemtype *base;//初始化的动态分配存储空间
int front;//头指针,若队列不为空,指向队列头元素
int rear;//尾指针,若队列不为空,指向队列尾元素的下一个位置
} squeue;
int display(squeue &q)
{
if(==)
{
printf("队为空");
return 0;
}//判断队是否为空
else
{
{
printf("输出顺序队列的元素为:");
for(int i=;i<;i++)
printf("%d ",[i]);
}
}
printf("\n\n");
return 1;
}//显示队的元素
status initqueue (squeue &q){//构造一个空队列Q
=(qelemtype *)malloc(maxqsize *sizeof(qelemtype ));
if(!) return 0;//存储分配失败
==0;
return 1;
}
int creat_q(squeue &q) //初始化一个队列
{ initqueue(q);
qelemtype e;
int i,n;
printf("创建一个顺序队列,输入队列中的元素个数为:");
cin>>n;
for(i=0;i<n;i++)
{
printf("请输入%d个数据:",i+1);
scanf("%d",&e);
[]=e;
=+1;
}
display(q);
return 1;
}
int enqueue(squeue &q,qelemtype e){
//插入元素e为Q的新的队尾元素
cout<<"输入要插入顺序队列的元素:"<<endl;
cin>>e;
if((+1)%maxqsize==