精华内容
下载资源
问答
  • 循环队列公式

    2018-08-29 09:53:22
    1、初始化队列 front=rear=0 2、队列为空时 front==rear 3、队列为满时 (rear+1)%maxsize=front

    1、初始化队列

    front=rear=0

    2、队列为空时

    front==rear

    3、队列为满时

    (rear+1)%maxsize=front
    展开全文
  • 设front为队首指针,rear为队尾指针,m为队列最大容量。 入队: rear = (rear + 1) % m 出队: front = (front + 1) % m 队空: front = rear 队满: front = (rear + 1) % m 当前队列中的元素数目...
    https://blog.csdn.net/u011080472/article/details/51173584
    

    设front为队首指针,rear为队尾指针,m为队列最大容量。

    在这里插入图片描述

    入队: rear = (rear + 1) % m
    出队: front = (front + 1) % m
    队空: front = rear
    队满: front = (rear + 1) % m
    当前队列中的元素数目:
    n = (rear - front + m) % m


    本文来自 smile4lee 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011080472/article/details/51173584?utm_source=copy

    展开全文
  • 一、队列长度公式 队列长度=(Q.rear+MaxSize-Q.front)%MaxSize 二、队列长度公式各个变量意义 以上各个变量的意义如下: Q.rear:队尾。指向数列队尾元素的下一个空间。 Q.front:队头。指向数列队头元素。 ...

    一、循环队列长度公式

    队列长度=(Q.rear+MaxSize-Q.front)%MaxSize

    二、队列长度公式各个变量意义

    以上各个变量的意义如下:

    Q.rear:队尾。指向数列队尾元素的下一个空间

    Q.front:队头。指向数列队头元素。

    MaxSize:队列的最大长度。如队列Q.data[10]的表示Q.data[0]~Q.data[9]一共十个元素。

    三、循环队列相关知识说明

    1、初始条件:Q.front==Q.rear==0;

    2、进队操作:队列没满时,先将值送到队尾,再将队尾指针加1。即Q.data[Q.rear],Q.rear=(Q.rear+1)%MaxSize;

    3、出队操作:队列不空时,先取队头元素,再讲队头元素加一。即x=Q.data[Q.front],Q.front=(Q.front+1)%MaxSize;

    4、判断队列是否为空:Q.front==Q.rear,注意这里队头和队尾不一定是指向0号元素。举个例子,初始时Q.front==Q.rear==0,假如我先在Q.data[0]存入一个数,这时Q.front==0,而Q.rear==1。在这个前提下我们再进行出队操作,则此时Q.front==Q.rear==1,队列为空。

    5、判断队列是否满了:(Q.rear+1)%MaxSize==Q.front。我们要知道一个前提,即队列如果有十个单元,则我们只能使用9个单元,当队尾指针指向最后一个空单元时,则认为队列已满。这虽然牺牲了一个单元,但也避免了判空条件的冲突。我们想一想,假设 MaxSize=3,如果三个单元都装入元素,那Q.rear的值怎么处理,如果Q.front==Q.rear==0的话不是和判空操作冲突了吗?如果Q.rear==2,那不是和进队操作的进队后队尾指针加一的操作冲突了吗?所以为了操作方便,我们默认牺牲一个空间。

     6、Q.rear一定大于Q.front吗?这肯定不对。我们在进队的时候也可以进行出队操作。

    如下图所示,当队列满时,如果我们进行出队操作,则Q.front>0。此时队列又变为不满的操作,我们可以继续进行进队操作,则Q.rear会从Q.data[MaxSize-1](即末尾)回到开头。就像下图这样。

     四、队列长度公式推导。

    由上面介绍的队列的知识,我们可以知道Q.rear有大于、小于和等于Q.front三种情况。

    以下推导假设MaxSize=10;

    1、Q.rear>Q.front

    假设Q.rear=5,Q.front=2,则现在队列占得单元有Q.data[2]、Q.data[3]、Q.data[4]三个,那么队列长度L=Q.rear-Q.front=3。

    2、Q.rear=Q.front

    假设Q.rear=5,Q.front=5。我们知道Q.rear是一定指向空单元的,

    所以队列长度L=Q.rear-Q.front=0;

    3、Q.rear<Q.front

    假设Q.rear=3,Q.front=5,那么队列占得单元有Q.front开头的Q.data[5]、Q.data[6]、Q.data[7]...Q.data[9]5个单元,再加上Q.rear往下数的Q.data[2]、Q.data[1]、Q.data[0]三个单元,一共有8个单元。则MaxSize-Q.front=5,MaxSize-Q.front+Q.rear=8,

    所以队列长度L=MaxSize-Q.front+Q.rear;


    3的结果我们将变量位置变一下,则L=Q.reare-Q.front+MaxSize;

    这时我们发现3的结果不就是在1和2的结果上加了一个MaxSize吗。根据数学取余的性质,

    (x+ky)%y=x(注:x<y,k∈N),因此综上所述,队列长度公式可以写成:

    L=(Q.reare-Q.front+MaxSize)%MaxSize

    展开全文
  • 链接:...循环队列的相关条件和公式: 1.队空条件:rear==front 2.队满条件:(rear+1) %QueueSIze==front,其中QueueSize为循环...

    链接:https://www.nowcoder.com/questionTerminal/baa8634c3bde4f5bac0085265c83fa9d?toCommentId=1337461
    来源:牛客网

    循环队列的相关条件和公式:
    1.队空条件:rear==front
    2.队满条件:(rear+1) %QueueSIze==front,其中QueueSize为循环队列的最大长度
    3.计算队列长度:(rear-front+QueueSize)%QueueSize
    4.入队:(rear+1)%QueueSize
    5.出队:(front+1)%QueueSize
    这里出队(front+1)%QueueSize,QueueSize是数组大小,也就是m+1。

    转载于:https://www.cnblogs.com/claudia529/p/11072230.html

    展开全文
  • 循环队列的相关条件和公式 队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度 1.队空条件:rear == front 2.队满条件:(rear+1) %QueueSIze==front 3.计算队列长度:(rear-front+...
  • 循环队列个数计算公式

    千次阅读 2019-03-21 22:22:20
    计算队列的元素个数:(尾-头+表长)%表长 队列头指针为front,队列尾指针为rear,队列容量为M,则元素个数为|rear-front+M|%M,注意,这个%是求余运算。 设f为队头,r为队尾,m为队长,a为元素个数,则 1. f>r...
  • 循环队列的计算公式

    2021-05-01 10:26:51
  • 循环队列的相关计算公式

    万次阅读 2016-04-17 15:53:00
    · 设front为队首指针,rear为队尾指针,m为队列最大容量。 入队: rear = (rear + 1) % m出队: front = (front + 1) % m队空: front = rear队满: front = (rear + 1) % m当前队列中的元素数目: n = (rear ...
  • 循环队列

    2019-05-21 21:45:13
    循环队列 队列:只允许在一端进行插入,另一端进行删除的线性表 循环队列:队列首尾相接的顺序存储结构称作循环队列。 队列顺序存储的不足:顺序存储我们一般使用数组,那么假设一个队列有n个元素,首先需要...
  • 循环队列的计算公式: 设front为队首指针,rear为队尾指针,m为队列最大容量。 入队: rear = (rear + 1) % m 出队: front = (front + 1) % m 队空: front = rear 队满: front = (rear + 1) % m 当前队列...
  • 循环队列的基本操作详细讲解实验学时:2实验类型:(设计型)一、实验目的1. 理解并掌握队列的逻辑结构和顺序存储结构,了解循环队列的特点;2. 掌握循环队列中基本操作的相关算法;3. 编程实现相关算法;4. 学会利用...
  • 循环队列的元素个数计算公式

    万次阅读 2019-07-12 10:14:26
    因为循环对列,rear不一定比front大 如果rear<front结果是rear-front+maxsize 如果rear>front结果是rear-front 为了用一个表达式同时表达两者,用(rear-front+maxsize)%maxsize 假设maxsize=10 rear=1 ...
  • 循环队列问题

    千次阅读 2014-06-05 16:31:35
    1. 一循环队列,队头指针为front,队尾指针为rear,循环队列长度为N,其队内有效长度为_______ 2.
  • 设计循环队列

    2019-04-16 10:31:00
    设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用...
  • 1.循环队列
  • 循环队列:头尾相接的顺序存储成为循环队列满队列的判断 办法一:设置一个标志flag,当front == rear 且 flag = 0 为空队列当 front == rear 且 flag = 1 为满队列(烦琐) 办法二: 满队列时,数组中还存在一个...
  • 循环队列用到的公式: 队列满的公式:(rear+1)%QueueSize == front 队列长度公式:(rear-front+QueueSize)%QueueSize front:队列头,指向队列的第一个元素, 也就是说 arr[front] 就是队列的第一个元素,初始值...
  • 循环队列和链队列

    2016-06-19 16:12:01
    1.循环队列是基于数组实现的,front指向队头元素,rear指向队尾元素的下一位置。 因为是循环队列,所以无法判断当front和rear相遇时,此时队列是空还是已满。故这里设一下条件: 当队列为空时: front==rear 当...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,597
精华内容 8,238
关键字:

循环队列公式