实验4:栈和队列的基本操作实现及其应用之《顺序队列》
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
建立一个顺序队列,实现队列的入队和出队操作。
建立一个顺序队列,实现队列的入队和出队操作。
#ifndef CirQueue_h
#define CirQueue_h
#include
const int q = 100;
class CirQueue
{
public:
CirQueue() { front = rear = q - 1; }
~CirQueue() {};
void Push(int x);
int Pop();
int GetTop();
int Empty()
{
if (front == rear)return 1;
else return 0;
}
private:
int data[q];
int front, rear;
};
#endif
#include"CirQueue.h"
#include
using namespace std;
void CirQueue::Push(int x)
{
if ((rear + 1) % q == front)throw"上溢";
rear = (rear + 1) % q;
data[rear] = x;
}
int CirQueue::Pop()
{
if (rear == front)throw"下溢";
front = (front + 1) % q;
return data[front];
}
int CirQueue::GetTop()
{
int i;
if (rear == front)throw"下溢";
i = (front + 1) % q;
return data[i];
}
void main()
{
CirQueue C;
if (C.Empty()==0)
cout << "队列为空" << endl;
else
cout << "队列为非空" << endl;
cout << "对1和2执行入队操作" << endl;
C.Push(1);
C.Push(2);
cout << "队头元素为:" << endl;
cout << C.GetTop() << endl;
cout << "执行一次出队操作:" << endl;
C.Pop();
cout << "队头元素为:" << endl;
cout << C.GetTop() << endl;
system("pause");
}