1. 程式人生 > >用陣列實現棧結構

用陣列實現棧結構

 

 

	public static class ArrayStack {
		private Integer[] arr;
		private Integer size;

		public ArrayStack(int initSize) {     //initsize 是要告訴我陣列要開多大。
			if (initSize < 0) {
				throw new IllegalArgumentException("The init size is less than 0");
			}
			arr = new Integer[initSize];    
			size = 0;
		}

		public Integer peek() {   //和 pop 區別是,這個只是返回棧頂,不會抹掉
			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;      //新來的數先把 index 填上,然後 index 再 ++
		}

		public Integer pop() {
			if (size == 0) {
				throw new ArrayIndexOutOfBoundsException("The queue is empty");
			}
			return arr[--size];            //把 index -1 的數給使用者,然後 index 再 --。
		}
	}