循环队列注意点及实现

队尾插入元素(rear),队头元素出队(front)
1.循环队列内元素个数等于数组或者链表元素长度减一时,即可认为循环链表已经装满,否则队列满和队列为空的判断条件相同
即 (arr.length - 1 == size) => 队列满 ,或者 (list.getLength() - 1 == size) => 队列满
2.队满判断条件:
(rear+1)%arr.length == front
3.队列为空的判断条件:
rear == front
4.元素出队和元素入队之后索引的变化都是(指针+1)%arr.length
(队头)元素出队:front = (front+1)%arr.length
(队尾)元素入队:rear = (rear+1)%arr.length

public class Circular_queue {
    private int[] arr;//采用数组实现循环队列
    private int front;//队头指针
    private int rear;//队尾指针

    public Circular_queue() {
    }

    /**
     * @param length 队列空间大小
     */    
    public Circular_queue(int length){
        arr = new int[length];
    }

    //插入元素
    public void insert(int value) throws Exception {
        //队列满了
        if((rear+1)%arr.length==front){
            throw new Exception("队列满了。。。");
        }
        arr[rear] = value;
        rear = (rear+1)%arr.length;
    }

    //元素出队
    public int pop() throws Exception {
        if(rear==front){
            throw new Exception("队列内为空。。");
        }
        int result = arr[front];
        front = (front+1)%arr.length;
        return result;
    }

    //展示所有元素
    public void showAll() throws Exception {
        int _rear = rear;
        int _front = front;
        System.out.println("开始打印数据~~~~~~");
        while (_rear!=_front){
            System.out.println(arr[_front]);
            _front = (_front+1)%arr.length;
        }
        System.out.println("数据打印完毕~~~~~~");
    }
}
全部评论

相关推荐

搜索部 首先说下timeline8.18,投递8.19,约一面8.21,晚上一面call约二面8.22,上午二面下午oc周末等待(8.23,8.24)8.25,offer一年前,我还是懵懵懂懂,高考完的暑假,只会提前学学高数,未来的画像是什么?我或许无法预测。开学后,自学Python,接单,无数个客户的ddl,偷偷摸摸一个人找自习的地方,这一步步竟然为后来的我,搭建工程能力的基础。大一上,我也要感谢我的第一位老板,让我接触到了实习,师兄带着我一步步入门,看他们写的飞书文档。大一下,导师带我参与企业项目,这让我渐渐发现,应该去实践,增长见识,而非局限当下,盯着自己的小新pro。不久后,第一波投递开始,结果当然是约面极少。盯着简历上的文字和ssob,我开始思考,确实很多可以去提升。带着些许不甘心,继续沉淀,慢慢的约面也越来越多,有的时候两天7场,准备完就接着下一个日程。这一次,也许是刚好到位吧,比较match,面试答的流利,关关难关关过,成为度孝子展望未来,依然是重重挑战,果然只有收到offer的那一刻是开心的。愿在百度星海拆解的每一段代码,都能成为丈量宇宙的诗行;此志终赴星河,而今迈步重铸天阶。屏幕前的你们,在无数个向星海奔赴的日夜,一定一定,会在未来化作群星回响的征程——请永远相信此刻埋首耕耘的自己!!!
一天三顿半:???百度提前批发 offer了?不是统一和正式批排序完再发吗我靠
百度求职进展汇总
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务