zoukankan      html  css  js  c++  java
  • 利用数组实现固定大小的队列和栈

    一  数组实现的队列

         这里的队列大小通过构造函数传递

    public class ArrayToQueue {
    
        Integer[] arr;
        int start;
        int end;
        int size;
    
        public ArrayToQueue(int capacity) {
            super();
            arr = new Integer[capacity];
        }
    
        public void push(int obj) {
            if (size == arr.length) {
                throw new IllegalArgumentException();
            }
            size++;
            
            arr[end] = obj;
            // 两种方法都可以
            // end = end == arr.length -1 ? 0 : end +1 ;
            end = (end + 1) % arr.length;
        }
    
        public int poll() {
            if (size == 0) {
                throw new IllegalArgumentException();
            }
            size--;
            int res = arr[start];
            start = (start + 1) % arr.length;
            return res;
        }
    
    }

    二  数组实现栈

       栈的大小通过构造函数传递

    public class ArrayToStack {
    
        Integer []  arr ;
        int index;
        
        public ArrayToStack(int initialSize) {
            super();
            arr = new Integer[initialSize];
        }
        
        public void push(int obj) {
            if (index == arr.length) {
                throw new ArrayIndexOutOfBoundsException("The queue is full");
            }
            arr[index++] = obj;
        }
    
        public Integer pop() {
            if(index == 0) {
                throw new ArrayIndexOutOfBoundsException("The queue is empty");
            }
            return arr[--index];
        }
        
        public Integer peek() {
            if(index == 0) {
                return null;
            }
            return arr[index-1];
        }
        
    }
  • 相关阅读:
    学习进度条7
    2016年秋季个人阅读计划
    WampServer中MySQL中文乱码解决
    LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”
    人月神话阅读笔记03
    人月神话阅读笔记02
    个人总结
    人月神话阅读笔记01
    学习进度条15
    学习进度14
  • 原文地址:https://www.cnblogs.com/moris5013/p/11626698.html
Copyright © 2011-2022 走看看