精华内容
下载资源
问答
  • capacity是你的数组的大小,bai如果最后一du个元素位置被使用后,要再存下一个元素,那zhi么按循环队列的定义,应该dao是存到数组的开头,而对capacity取余则可以使得下标从capacity-1变为0,然后递增,达到循环的...
    rear=(rear+1)%capacity;
    

    队列长度最大为maxsize,每做一次入队操作指针向上移动,当超过最大长度时,回归到最初
    capacity是你的数组的大小,bai如果最后一du个元素位置被使用后,要再存下一个元素,那zhi么按循环队列的定义,应该dao是存到数组的开头,而对capacity取余则可以使得下标从capacity-1变为0,然后递增,达到循环的目的

    展开全文
  • 循环队列计算

    2018-04-12 10:50:34
    循环队列计算 给自己留个笔记 循环队列入队 (rear+1) mod size 循环队列计算大小 (rear-font+size)mod size 循环队列判断满 (rear +1 ) mod size = front

    循环队列计算

    给自己留个笔记

    循环队列入队

    (rear+1) mod size

    循环队列计算大小

    (rear-font+size)mod size

    循环队列判断满

    (rear +1 ) mod size = front

    展开全文
  • 循环队列计算公式

    2021-05-01 10:26:51
  • 怎么把循环队列的数组下标设置从1~n,而不是0~n-1,如 有5个数 1 2 3 4 5 他们的下标也是1~5,这时就出现问题了,循环队列是首尾相连,(5+1)%5 是等于 1 ,实现了第一个和最后一个数的循环,但(4+1)%5 却等于 0,...
  • 循环队列

    2019-11-13 20:43:05
    循环队列 队列数组实现就是循环队列 关键:头或者尾达到数组最后一个元素,接下来在进行入队或者出队,就让这样的标记来到数组开头。 队列为空:head和tail相等,队列为空 队列满了:head和tail相等(判断size是否为...

    循环队列

    队列数组实现就是循环队列

    关键:头或者尾达到数组最后一个元素,接下来在进行入队或者出队,就让这样的标记来到数组开头。
    队列为空:head和tail相等,队列为空
    队列满了:head和tail相等(判断size是否为空,不为空表示队列满了)

    数组下标循环技巧

    1. 下标最后再往后(offset 小于 array.length): index = (index + offset) % array.length
    2. 下标最前再往前(offset 小于 array.length): index = (index + array.length - offset) % array.length

    实现:

    public class MyQueue2 {
        private int [] data=new int[100];
        private  int head=0;//队首元素下标
        private int tail=0;//队尾元素下标
        private int size=0;
        
        //1.入队列,插入成功返回true,失败返回false
        // 如果队列满了就会插入失败
        public boolean offer(int x){
            if(size==data.length){
                return false;
            }
            //新元素放到tail的位置上
            data[tail]=x;
            tail++;
            if(tail==data.length){
                tail=0;
            }
            size++;
            return true;
        }
        //2.出队列
        public Integer poll(){
            if(size==0){
                return null;
            }
            Integer ret=data[head];
            head++;
            if(head==data.length){
                head=0;
            }
            size--;
            return ret;
        }
        //3.取队列首元素
        public Integer peek(){
            if(size==0){ 
                return null;
            }
            return data[head];
        }
        //4、判定为空
        public boolean isEmpty(){
            return size==0;
        }
        //5、取长度
        public int size(){
            return size;
        }
    }
     //测试
        public static void main(String[] args) {
            MyQueue2 myQueue2=new MyQueue2();
            myQueue2.offer(1);
            myQueue2.offer(2);
            myQueue2.offer(3);
            myQueue2.offer(4);
            while(!myQueue2.isEmpty()){
                Integer cur=myQueue2.peek();
                System.out.println(cur);
                myQueue2.poll();
            }
    //执行结果:
    1
    2
    3
    4
    
    

    双端队列

    双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。那 就说明元素可以从队头出队和入队,也可以从队尾出队和入队。

    展开全文
  • 循环队列的相关计算公式

    万次阅读 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 ...
  • 准备写队列以下几种类型:循环队列(顺序结构),链队列,循环队列(只有尾指针),字符队列(顺序结构) 一、循环队列循环队列存储结构typedef int QElemType; typedef struct{ QElemType *base; int front; int...
  • 循环队列问题总结

    千次阅读 2016-11-17 16:21:39
    循环队列问题总结@(算法学习)直接以2011年一道选择题为例分析循环队列如何简单思考。 (2011.3)已知循环队列存储在一维数组中A[0…n-1],且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且...
  • C语言实现循环队列

    千次阅读 多人点赞 2020-06-24 15:58:46
    详解循环队列的巧妙之处
  • 循环队列循环队列长度和头尾指针关系

    万次阅读 多人点赞 2016-09-08 16:36:32
    1、为什么会引入循环队列?  对于顺序队列,头指针和尾指针开始时刻都指向数组的0下标元素。当加入新元素以后,尾指针向后移动,指向最后一个元素的下一个位置。 但是尾指针不能超过数组的最大范围。当有元素删除时...
  • 循环队列和链式结构队列

    千次阅读 2017-02-27 13:22:04
    一、循环队列的基础知识 1,循环队列有几个参数需要确定:  有两个参数,front和rear 2,循环队列各个参数的含义 (1)队列初始化时,front和rear值都为零; (2)当队列不为空时,front指向队列的第一...
  • 循环队列的实现

    千次阅读 2014-07-19 16:43:16
    循环队列,c,数据结构
  • 设计循环队列详解

    2021-02-02 11:05:38
    循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个...
  • Java数组实现循环队列

    千次阅读 2018-10-29 20:55:01
    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tail == n时会有数据搬移操作,这样入队操作性能就会受到影响。这里我们使用循环队列的解决思路。 循环队列 ...
  • 顺序存储的队列,元素循环存储循环队列定义循环队列判空、判满循环队列长度代码实现测试结果 循环队列定义 在逻辑上把顺序存储的队列想象成一个环,就是循环队列循环队列仍是顺序存储,只是元素可以循环存储在...
  • 循环队列的常见操作

    2018-04-22 19:25:15
    不过对于一般的队列,都是循环队列,这是为了防止内存的浪费,使为队列分配的内存可以循环使用,而且一般动态分配一个长度为n的循环队列的话,真正用来储存数据的只有n-1,因为要留一个空节点使队列尾的下标等于该空...
  • 链表队列和循环队列的基本操作 实验内容 完成以下任务: 数组7 5 3 9 2 4 全部入队列 ...循环队列记住下标加一以及队列满的判断 源码: #include<iostream> #include<malloc.h> using nam...
  • 队列---循环队列

    2015-10-21 16:57:12
    我们把队列的这种头尾相接的顺序存储结构称为循环队列。比如前面的例子,rear可以改为指向下标为0的位置,这样就不会造成指针指向不明的问题了。 但是如果继续进行入队操作的话,比如继续插入a6、a7,则rear指针就...
  • 队列----循环队列

    2019-04-15 11:39:42
    循环队列:具有队头指针和队尾指针,指示队列元素所在的位置,避免删除元素时移动大量元素。 循环队列特性: 只能队尾插入元素、在队头删除元素。 先进先出(First In First Out)的线性表,先进入的元素出队,后...
  • 循环(顺序)队列下标控制讨论并对严版数据结构一伪代码存疑
  • 数组模拟循环队列 maxSize :队列容量 front:队列头下标(第一个元素的下标,初始为0) rear:队列尾下标(最后一个元素的后一个位置下标,初始为0) 队列满:(rear + 1)%maxSize == front 队列空:rear == front ...
  • 顺序队列很简单,所以这里专门来实现顺序循环队列了,循环队列还是蛮有意思的,通过取模运算得到队列中的指定元素。顺序队列写法和顺序栈很相似这里就不实现了,这里就开始实现顺序循环队列! Java 实现 逻辑思路 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,920
精华内容 17,968
关键字:

循环队列下标如何计算