您的位置:首页 > 理论基础 > 数据结构算法

数据结构|顺序队列的实现(实验3.3)

2017-10-19 22:19 405 查看


一、实验目的

1、   熟练掌队列的结构特点,掌握队列的顺序存储和实现。

2、      学会使用队列解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模,建立一个顺序队列,实现队列的入队和出队操作。

源代码如下:#include<iostream>
using namespace std;
const int Queuesize = 100;
template<class T>
class Cirqueue{
public:
Cirqueue(){ front = rear = Queuesize-1; }
~Cirqueue(){};
void EnQueue(T x);
T DeQueue();
T GetQueue();
void PrintQueue();
int Empty() {front==rear?return 1:return 0;}
private:
T data[Queuesize];
int front,rear;
};
template <class T>
void Cirqueue<T>::EnQueue(T x)
{
if((rear+1)%Queuesize==front) throw"上溢";
rear=(rear+1)%Queuesize;
data[rear]=x;
}

template <class T>
T Cirqueue<T>::DeQueue()
{
if(rear==front) throw"下溢";
front=(front+1)%Queuesize;
return data[front];
}

template <class T>
T Cirqueue<T>::GetQueue()
{
if(rear==front) throw"下溢";
int i=(front+1)%Queuesize;
return data[i];
}

template <class T>
void Cirqueue<T>::PrintQueue()
{
int p = (front+1) % Queuesize;
while(p != rear){
cout<<data[p]<<" ";
p = (p+1) % Queuesize;
}
cout<<data[p]<<endl;
}

void main()
{
Cirqueue<int>s;
cout<<"将元素 1,2,3,4 依次进队 "<<endl;
for(int i=1;i<=4;i++) { s.EnQueue(i); }
cout<<"进队结果为:"<<endl;
s.PrintQueue();
cout<<"出队一个元素: "<<s.DeQueue()<<endl;
cout<<"出队结果为:"<<endl;
s.PrintQueue();
cout<<"队头元素为:"<<s.GetQueue()<<endl;
} 运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: