循环队列的基本功能(初始化、入队和队列出队、遍历)及C语言代码实现
1。初始化
初始化比链表简单。核心是取空间,移动前指针,将后指针的内容设置为0,表示指向第0个元素(注意第0个元素的内容为空)。
![]()
代码可表达为:
//初始化cir_queue *init(){ cir_queue *q =cir_queue *q =cir_queue ( (cir_queue)); if(q==NULL){ //F } † q;} |
2。队列功能
队列功能与顺序队列方法相同。可以把车尾直接往后移,但是要注意判断。如果尾部到达队列状态,则重新开始。继续移动。这里推荐使用rest方法。因此,无论如何,余都都必须在这个领域采取行动。这可以防止整个系统在一次错误执行后立即崩溃。它也相对更紧凑。不建议使用if语句,看起来相当麻烦。
![]()
注意,单次插入移动位置时,不能直接进行q->rear++等操作。当计算机确定优先级时,这会导致意想不到的后果。另外,这里还需要判断一下队列是否已满。当back指针的下一个位置是front时,循环队列已满。
如图:
![]()
代码可表示为:
//入队操作pushvoid h, int 数据”溢出,无法加入队伍\n"); 返回;❃ se { q->返回 =(q->返回+1)%maxsize ; q->数据[q->后面]=数据; 如果您想打断连续的队列,请将前面的部分向后移一位。注意,这个阶段值得关注的是,即队列是否为空。当队列为空时,无法出队。 同时(i!=q->后){ ; ❃ (i) printf ("%d\t",q->数据[i]); |
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网