顺序队列的假溢出及顺序循环队列的表示(C++版) 您所在的位置:网站首页 顺序循环队列可以克服假溢出现象 顺序队列的假溢出及顺序循环队列的表示(C++版)

顺序队列的假溢出及顺序循环队列的表示(C++版)

2024-06-27 12:35| 来源: 网络整理| 查看: 265

顺序队列的假溢出:

按照前面所说的顺序队列的存储方法(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 实验室设备网 版权所有