数据结构实验——队列(附程序)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三队列
•、实验目的
1.了解队列的ห้องสมุดไป่ตู้性。
2.掌握队列的顺序表示和实现。
3.掌握队列的链式表示和实现。
1
实验3.3队列的顺序表示和实现
编写一个程序实现顺序队列的各种基本运算(采用循环队列),
主程序,完成如下功能:
⑴
初始化队列。
⑵
建立顺序队列。
⑶
入队。
⑷
岀队。
(5)
判断队列是否为空。
⑹
取队头元素。
(7)
{
if(!(Q.rear-Q.fr on t+MAXQSIZE)%MAXQSIZE)return 0;
e=Q.base[Q.fro nt];
printf("返回队头元素%5d\n",e);
return 0;
}//返回队头元素e
void Prin tQueue(SqQueue &Q)
{
int k;
prin tf("顺序队列中的元素:\n");
遍历队列。
实验3.4队列的链式表示和实现
编写一个程序实现链队列的各种基本运算,并在此基础上设计 能:
(1)
初始化并建立链队列
⑵
入链队列。
⑶
岀链队列。
⑷
遍历链队列。
#i nclude<stdio.h>
#in clude<stdlib.h>
#defi ne MAXQSIZE 100 typedef struct
{
if(Q.fro nt==Q.rear)return 0;
e=Q.base[Q.fro nt];
prin tf("%5d\n",e);
Q.fron t=(Q.fr on t+1)%MAXQSIZE;
return 0;
}//删除元素e并返回其值
int GetHead(SqQueue&Q,i nt e)
{
int *base;
int front;
int rear;
}SqQueue;
int Ini tQueue(SqQueue &Q)
{
Q.base=(i nt*)malloc(MAXQSIZE*sizeof(i nt)); if(!Q.base)exit(O);
Q.fro nt=Q.rear=0;
return 0;
}//初始化顺序队列
int QueueLe ngth(SqQueue Q)
{
int i;
i=(Q.rear-Q.fro nt+MAXQSIZE)%MAXQSIZE;
printf(“队列长度%5d\n",i);
if(i)printf("队列非空“);
else
printf("队列为空");
return 0;
for(k=Q.fro nt;k!=Q.rear;k++)
}//判断队列是否为空
int En Queue(SqQueue &Q,i nt e)
{
if((Q.rea叶1)%MAXQSIZE==Q.fro nt)return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rea r+1)%MAXQSIZE;
return 0;
}//将元素e入队
int DeQueue(SqQueue&Q,i nt e)
•、实验目的
1.了解队列的ห้องสมุดไป่ตู้性。
2.掌握队列的顺序表示和实现。
3.掌握队列的链式表示和实现。
1
实验3.3队列的顺序表示和实现
编写一个程序实现顺序队列的各种基本运算(采用循环队列),
主程序,完成如下功能:
⑴
初始化队列。
⑵
建立顺序队列。
⑶
入队。
⑷
岀队。
(5)
判断队列是否为空。
⑹
取队头元素。
(7)
{
if(!(Q.rear-Q.fr on t+MAXQSIZE)%MAXQSIZE)return 0;
e=Q.base[Q.fro nt];
printf("返回队头元素%5d\n",e);
return 0;
}//返回队头元素e
void Prin tQueue(SqQueue &Q)
{
int k;
prin tf("顺序队列中的元素:\n");
遍历队列。
实验3.4队列的链式表示和实现
编写一个程序实现链队列的各种基本运算,并在此基础上设计 能:
(1)
初始化并建立链队列
⑵
入链队列。
⑶
岀链队列。
⑷
遍历链队列。
#i nclude<stdio.h>
#in clude<stdlib.h>
#defi ne MAXQSIZE 100 typedef struct
{
if(Q.fro nt==Q.rear)return 0;
e=Q.base[Q.fro nt];
prin tf("%5d\n",e);
Q.fron t=(Q.fr on t+1)%MAXQSIZE;
return 0;
}//删除元素e并返回其值
int GetHead(SqQueue&Q,i nt e)
{
int *base;
int front;
int rear;
}SqQueue;
int Ini tQueue(SqQueue &Q)
{
Q.base=(i nt*)malloc(MAXQSIZE*sizeof(i nt)); if(!Q.base)exit(O);
Q.fro nt=Q.rear=0;
return 0;
}//初始化顺序队列
int QueueLe ngth(SqQueue Q)
{
int i;
i=(Q.rear-Q.fro nt+MAXQSIZE)%MAXQSIZE;
printf(“队列长度%5d\n",i);
if(i)printf("队列非空“);
else
printf("队列为空");
return 0;
for(k=Q.fro nt;k!=Q.rear;k++)
}//判断队列是否为空
int En Queue(SqQueue &Q,i nt e)
{
if((Q.rea叶1)%MAXQSIZE==Q.fro nt)return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rea r+1)%MAXQSIZE;
return 0;
}//将元素e入队
int DeQueue(SqQueue&Q,i nt e)