一、实验目的1、 熟练掌握队列的结构特点,掌握队列的顺序存储和链式存储结构和实现。2、 学会使用队列解决实际问题。二、实验内容1、 自己确定结点的具体数据类型和问题规模:分别建立一个链队列,实现队列的入队和出队操作。
// 顺序队列.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
const int QueueSize=100;
template <typename DT>
class CirQueue
{public:
CirQueue(){front=rear=QueueSize-1;}
void EnQueue(DT x);
DT DeQueue();
DT GetQueue();
private:
DT data[QueueSize];
int front,rear;
};
template <typename DT>
void CirQueue<DT>::EnQueue(DT x)
{if((rear+1)%QueueSize==front)cout<<"上溢";
rear=(rear+1)%QueueSize;
data[rear]=x;
}
template <typename DT>
DT CirQueue<DT>::DeQueue()
{if(rear==front)cout<<"下溢";
front=(front+1)%QueueSize;
return data[front];
}
template <typename DT>
DT CirQueue<DT>::GetQueue()
{if(rear==front)cout<<"下溢";
DT i=(front+1)%QueueSize;
return data[i];
}
int main()
{ CirQueue<int> c;
int a[5]={88,72,98,69,84};
for (int i=0;i<5;i++){c.EnQueue(a[i]);}
cout<<"第一个元素是:"<<c.GetQueue()<<endl;
cout<<"输出所有的元素:"<<endl;
for (int j=0;j<5;j++){cout<<c.DeQueue()<<" ";}
return 0;
}