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));
        }
    }
  • 相关阅读:
    hdoj 3599 最小费用最大流
    poj 2516 最小费用最大流
    poj 3281 最大流拆点
    poj 3436 网络最大流加打印路径
    邻接表模板
    hdu 2102 搜索
    hdoj 1533 最小费用最大流
    HDU 1231 最大连续子序列
    NYOJ 2 括号配对问题
    POJ 1163 / NYOJ 16 The Triangle(数字三角形)
  • 原文地址:https://www.cnblogs.com/biexei/p/11426926.html
Copyright © 2011-2022 走看看