
public static class ArrayStack {
   private Integer[] arr;
   private Integer size;
   public ArrayStack(int initSize) {
      if (initSize < 0) {
         throw new IllegalArgumentException("The init size is less than 0");
      }
      arr = new Integer[initSize];
      size = 0;
   }
   public Integer peek() {
      if (size == 0) {
         return null;
      }
      return arr[size - 1];
   }
   public void push(int obj) {
      if (size == arr.length) {
         throw new ArrayIndexOutOfBoundsException("The queue is full");
      }
      arr[size++] = obj;
   }
   public Integer pop() {
      if (size == 0) {
         throw new ArrayIndexOutOfBoundsException("The queue is empty");
      }
      return arr[--size];
   }
}public static class ArrayQueue {
   private Integer[] arr;
   private Integer size;
   private Integer first;
   private Integer last;
   public ArrayQueue(int initSize) {
      if (initSize < 0) {
         throw new IllegalArgumentException("The init size is less than 0");
      }
      arr = new Integer[initSize];
      size = 0;
      first = 0;
      last = 0;
   }
   public Integer peek() {
      if (size == 0) {
         return null;
      }
      return arr[first];
   }
   public void push(int obj) {
      if (size == arr.length) {
         throw new ArrayIndexOutOfBoundsException("The queue is full");
      }
      size++;
      arr[last] = obj;
      last = last == arr.length - 1 ? 0 : last + 1;
   }
   public Integer poll() {
      if (size == 0) {
         throw new ArrayIndexOutOfBoundsException("The queue is empty");
      }
      size--;
      int tmp = first;
      first = first == arr.length - 1 ? 0 : first + 1;
      return arr[tmp];
   }
}注意这里的size的用法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。