队列的顺序存储——循环队列

队列允许在一端进行插入操作,在另一端进行删除操作的线性表。

1.允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头

队列的这种首尾相接的顺序存储称为循环队列

1.为了实现元素出队之后,不移动其他的数据元素,并且可以循环利用空闲下来的数组空间。

2.队空的条件:start==rear。

3.队满的条件:(rear+1)%QueueSize==start。


代码:

#include

using namespace std;

const int MaxSize=100;

class CirQueue
{
private:
    int data[MaxSize];
    int start,rear;
public:
    CirQueue(){start=rear=MaxSize-1;}
    CirQueue(int a[],int n);
    ~CirQueue(){}
    void EnQueue(int x);
    int DeQueue();
    int GetQueue();
    int Empty();
    void Destroy();
    void PrintStack();
};
CirQueue::CirQueue(int a[],int n)
{
    start=rear=MaxSize-1;
    if((rear+1)%MaxSize==start) throw "上溢";
    for(int i=0;i


你可能感兴趣的:(数据结构)