zoukankan      html  css  js  c++  java
  • 普通数组-队列

    package data.struct;
    
    import java.util.Arrays;
    
    public class ArrayQueue {
    
        private int maxSize;//队列最大长度
        private int head;//队列头
        private int tail;//队列尾
        private int[] array;
        
        public static void main(String[] args) {
            ArrayQueue queue = new ArrayQueue(3);
            queue.showHead();//0
            queue.add(1);
            queue.showHead();//1
            queue.showQueue();//[1, 0, 0]
            queue.add(2);
            queue.showQueue();//[1, 2, 0]
            queue.add(3);
            queue.showQueue();//[1, 2, 3]
            System.out.println(queue.get());//1
            queue.showHead();//2
            System.out.println(queue.get());//2
            System.out.println(queue.get());//3
        }
        
        public ArrayQueue(int maxSize) {
            if(maxSize < 0) {
                throw new RuntimeException("invalid param");
            }
            this.maxSize = maxSize;
            array = new int[maxSize];
            head = 0;//队列首位置
            tail = -1;//队列位位置
        }
        
        public boolean isEmpty() {
            return tail < head;//tail == head, 则代表队列恰好有一个元素
        }
        
        public boolean isFull() {
            return tail == maxSize - 1;
        }
        
        //出队列
        public int get() {
            if(isEmpty()) {
                throw new RuntimeException("array queue is empty");
            }
            head++;
            return array[head-1];
        }
        
        //入队列
        public void add(int num) {
            if(isFull()) {
                throw new RuntimeException("arrat queue is full");
            }
            tail++;
            array[tail] = num;
        }
        
        //打印队列头
        public void showHead() {
            System.out.println(array[head]);
        }
        
        //打印整个队列
        public void showQueue() {
            System.out.println(Arrays.toString(array));
        }
    }
  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/biexei/p/11426926.html
Copyright © 2011-2022 走看看