当前位置:
文档之家› 数据结构实验——队列(附程序)
数据结构实验——队列(附程序)
}//初始化顺序队列
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;
{
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;
实验三队列
•、实验目的
1.了解队列的特性。
2.掌握队列的顺序表示和实现。
3.掌握队列的链式表示和实现。
1
实验3.3队列的顺序表示和实现
编写一个程序实现顺序队列的各种基本运算(采用循环队列),
主程序,完成如下功能:
⑴
初始化队列。
⑵
建立顺序队列。
⑶
入队。
⑷
岀队。
(5)
判断队列是否为空。
⑹
取队头元素。
(7)
}//判断队列是否为空
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)
{
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)
遍历队列。
实验3.4队列的链式表示和实现
编写一个程序实现链队列的各种基本运算,并在此基础上设计 能:
(1)
初始化并建立链队列
⑵
入链队列。
⑶
岀链队列。
⑷
遍历链队列。
#i nclude<stdio.h>
#in clude<stdlib.h>
#defi ne MAXQSIZE 100 typedef struct
for(k=Q.fro nt;k!=Q.rear;k++)
{
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 &amf("顺序队列中的元素:\n");