c/c++语言开发共享C语言算法积累加tag的循环队列

题目:若希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是“满


题目:

若希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是“满”。

试编写与此结构相应的入队和出队算法。

关键字:

循环队列+tag的使用

思路 :

循环队列:

需要变量:队头指针front,队尾指针rear,增减元素的开关:tag

1)入队算法

尾插法:q.data[q.rear]=x;q.rear=(q.rear+1)%maxsize;q.tag=1

队空条件:q.front== q.rear且q.tag==0

2)出队算法

头结点删除:x=q.data[q.front];q.front=(q.front +1)%maxsize;q.tag=0

队满条件:q.front == q.rear且q.tag=1

注意:当删除之后链表为空时,还需增加一步,将尾指针指向头结点

1.设“tag”法的循环队列入队算法:

int enqueue1(sqqueue &q, elemtype x){     if(q.front==q.rear&&q.tag==1)  return 0;     q.data[q.rear]=x;     q.rear=(q.rear+1)%maxsize;     q.tag=1;     return 1;  }  

2.设“tag”法的循环队列入队算法:

int dequeue1(sqqueue &q, elemtype &x){      if (q.front==q.rear&&q.tag==0)          return 0;      x=q.data[q.front];      q.front=(q.front+1)%maxsize;      q.tag=0;      return 1;    }  

以上就是c语言算法积累加tag的循环队列的详细内容,更多关于c语言算法tag循环队列的资料请关注<计算机技术网(www.ctvol.com)!!>其它相关文章!

需要了解更多c/c++开发分享C语言算法积累加tag的循环队列,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1238100.html

(0)
上一篇 2022年9月11日
下一篇 2022年9月11日

精彩推荐