文档介绍:实验四队列存储与操作
一. 实验目的
1、掌握队列顺序存储结构(循环队列)及实现及操作
2、掌握队列的链接存储结构及实现及操作
二. 实验内容
1、建立一个空顺序存储结构队列; 对已建立的队列进行插入、删除、取队头元素等基本操作。
2、建立一个空链式存储结构队列; 对已建立的队列进行插入、删除、取队头元素等基本操作。
详细设计:
1、顺序队列的实现:
#include<iostream>
using namespace std;
const int Size=100;
typedef char DataType;
class CirQueue
{
public:
CirQueue()
{
front=rear=0;//构造队列,初始化一个空的循环队列,front和rear指向
}
~CirQueue(){}
void EnQueue(DataType x)
{
if((rear+1)%Size==front)
{
cout<<"队列已经满了"<<endl;
return;
}
rear=(rear+1)%Size;//队尾指针在循环的意义下加
data[rear]=x;
cout<<x<<"已入队"<<endl;
return;
}
DataType GetQueue()//取队头
{
if(isEmpty())
{
cout<<"队列为空"<<endl;
return 0;
}
int i;
i=(front+1)%Size;
return data[i];
}
DataType DeQueue()
{
if(isEmpty())
{
cout<<"队列为空"<<endl;
return 0;
}
front=(front+1)%Size;//队头指针在循环的意义下加
return data[front];
}
int isEmpty()//是否为空
{
if(front==rear)
{
return 1;
}
else{
return 0;
}
}
private:
DataType data[Size];
int front,rear;
};
int main()
{
CirQueue a;
int index;
DataType temp;
do
{
cout<<"**********************************"<<endl;
cout<<"1、入队操作"<<endl;
cout<<"2、取队头操作"<<endl;
cout<<"3、出队操作"<<endl;
cout<<"4、判断队列是否为空"<<endl;
cout<<"5、退出"<<endl;
cout<<"**********************************"<<endl;
cin>>index;
if(index==5){return 0;}
switch(index)
{
case 1:
cout<<"请输入要入队的元素"<<en