用陣列實現棧結構
阿新 • • 發佈:2019-09-05
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 再 --。
}
}