顺序队列的假溢出及顺序循环队列的表示(C++版) | 您所在的位置:网站首页 › 顺序循环队列可以克服假溢出现象 › 顺序队列的假溢出及顺序循环队列的表示(C++版) |
顺序队列的假溢出: 按照前面所说的顺序队列的存储方法(http://blog.csdn.net/tongxinhaonan/article/details/26710019),有可能造成“假溢出”。 这种溢出不是因为存储空间不够而溢出,而是经过多次插入和删除操作引起的,像这种有存储空间而不能进行插入的元素操作的溢出称为“假溢出”。
为了避免顺序队列造成的“假溢出”现象,通常采用顺序循环队列来实现队列的顺序存储。
顺序循环队列的定义和顺序队列的定义是一样的: #define QueueSize 40 typedef struct Squeue { DataType queue[QueueSize]; int front,rear; }SeqQueue; 顺序循环队列的实现:(1)初始化操作。 void InitQueue(SeqQueue *SCQ) { SCQ->front=SCQ->rear=0; } (2)判断队列是否为空。 int QueueEmpty(SeqQueue SCQ) { if (SCQ.front==SCQ.rear) { return 1; } else { return 0; } } (3)入队操作。 int EnterQueue(SeqQueue *SCQ,DataType x) { if (SCQ->front==(SCQ->rear+1)%QueueSize) { return 0; } SCQ->queue[SCQ->rear]=x; SCQ->rear=(SCQ->rear+1)%QueueSize; return 1; } (4)出队操作。 int DeleteQueue(SeqQueue *SCQ,DataType *x) { if (SCQ->rear==SCQ->front) { return 0; } *x=SCQ->queue[SCQ->front]; SCQ->front=(SCQ->front+1)%QueueSize; return 1; } |
CopyRight 2018-2019 实验室设备网 版权所有 |