源代码:
# include<iostream>
using namespace std;
const int MaxSize=100;
template<class DataType>
class SeqQueue
{
public:
SeqQueue();
~SeqQueue();
void Push(DataType x);
DataType Pop();
DataType GetFront();
int Empty();
private:
int front;
int rear;
DataType data[MaxSize];
};
template<class DataType>
SeqQueue<DataType>::SeqQueue()
{
front=0;
rear=0;
}
template<class DataType>
SeqQueue<DataType>::~SeqQueue()
{
cout<<"DesTroy SeqQueue!\n";
}
template<class DataType>
void SeqQueue<DataType>::Push(DataType x)
{
if(rear==MaxSize-1) throw"上溢";
else
data[rear]=x;
rear++;
cout<<x<<endl;
}
template<class DataType>
DataType SeqQueue<DataType>::Pop()
{
DataType x;
if(front==-1) throw"下溢";
else
x=data[front];
front++;
return x;
}
template<class DataType>
DataType SeqQueue<DataType>::GetFront()
{
if(rear!=front) return data[front];
}
template<class DataType>
int SeqQueue<DataType>::Empty()
{
if(rear==front) return 1;
else return 0;
}
int main()
{
SeqQueue<int> S;
if(S.Empty())
cout<<"The SeqQueue is empty!"<<endl;
else
cout<<"The SeqQueue is not empty!"<<endl;
int i;
for(i=10;i>1;i--)
S.Push(i);
cout<<"执行两次出队操作!"<<endl;
S.Pop();
S.Pop();
cout<<S.GetFront()<<endl;
return 0;
}
程序结果: