首页天道酬勤循环队列的计算方法,求循环队列的长度

循环队列的计算方法,求循环队列的长度

张世龙 05-06 11:52 93次浏览

队列的定义如下

# define maxsize 10 typedef struct { elemtype data [ maxsize ]; int front,rear; } seq队列; 一个包含一个队列=元素的数组,一个开头指针,一个末尾指针

front :离开队伍

rear :即将入队

让我们先制定规则:

front是指团队页眉元素

rear指向队列末尾元素的以下元素: 当然,也可以直接指向队列末尾的元素。 但是,根据代码的不同,需要相应变更,但思想不会改变)。

开始时,让我们设定rear=front=data[0]

元素输出:前端

元素入队: rear

一直以来,rear都到达了索引的最大位置。 这个时候,队列满了,不能再入队了吗?

不,同时一直有要素离开队伍,仍然有空的位置可以继续进入队伍。 那个怎么表示呢?

于是循环队列出现了。 这个模拟时钟很好理解

时钟指针达到12时返回0,反复循环

出入队方针的变化可以表示为

元素输出: (前1 ) % maxSize

元素入队: (rear 1) % maxSize

此时的队列长度如何获取?

那不仅仅是真的前端。 请看图

队列长度公式:

(rearfrontmaxsIze ) maxsize (rear-front % maxsize (% maxsize ) rearfrontmaxsIze ) ) maxsize

最大化:的目的是防止rear - front 0

%maxSize:的目的是防止rear - front 0和maxSize使队列长度达到maxSize

循环队列是线性结构吗,数据结构环形队列 数据结构选择排序,循环队列和顺序队列区别