每日算法220719通过数组实现队列

Posted 如何在5年薪百万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日算法220719通过数组实现队列相关的知识,希望对你有一定的参考价值。

今日题目

通过数组实现队列

今日心得

  • 想放弃很容易,好久不更新了
  • 感觉对题目有思路,套路有点熟悉了

算法编码

package stackandqueue;

/**
 * @ClassName ImplQueueWithArray
 * @Description 通过数组实现队列
 * @Author kouryoushine
 * @Date 2022/7/19 0:56
 * @Version 1.0
 */
public class ImplQueueWithArray 

    public static class MyQueue 
        private int[] arr;
        private int push; //end
        private int poll; //begin
        private int size; //实际长度
        private final int limit; //数组容量

        public MyQueue(int limit) 
            this.limit = limit;
            poll = 0;
            push = 0;
            size = 0;
            arr = new int[limit];
        

        //添加数据
        public void push(int value) 
            if (size == limit) 
                throw new RuntimeException("队列满了,不能添加了");
            
            size++;
            arr[push] = value;
            push = nextIndex(push);

        

        //取出数据
        public int poll() 
            int value;
            if (size == 0) 
                throw new RuntimeException("没有元素了,无法取出");
            
            value = arr[poll];
            size--;
            poll = nextIndex(poll);
            return value;
        

        //返回循环数组下一个坐标
        private int nextIndex(int push) 
            return push == limit ? 0 : push++;
        


    



以上是关于每日算法220719通过数组实现队列的主要内容,如果未能解决你的问题,请参考以下文章

每日算法220719通过数组实现队列

每日算法刷题Day15-0到n-1中缺失的数字调整数组顺序从尾到头打印链表用两个栈实现队列

两个栈实现一个队列

自定义数组列表和队列

每日一题641. 设计循环双端队列

栈和队列的实现(PHP)