循环队列

      为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在实际编程应用中来实现。循环队列有队头和队尾2个指针,是线性结构。元素的个数是由队头指针和队尾指针共同决定。

      循环队列队空和队满的条件:    

     为了方便起见,约定:初始化建空队时,令front=rear=0,   

     当队空时:front=rear  

     当队满时:front=rear 亦成立   

     因此只凭等式front=rear无法判断队空还是队满。 

     有两种方法处理上述问题:     

    (1)另设一个标志位以区别队列是空还是满。     

    (2)少用一个元素空间,约定以“队列头指针front在队尾指针rear的下一个位置上”作为队列“满”状态的标志。

      即:   队空时: front=rear   

 

队满时: (rear+1)%maxsize=front

   front指向队首元素,rear指向队尾元素的下一个元素。

 

    

 

posted @ 2016-04-19 12:00  可萌  Views(1229)  Comments(0)    收藏  举报