8.陣列模擬棧
阿新 • • 發佈:2022-01-16
1.定義變數
private int maxSize; // 棧的大小
private int[] stack; // 陣列,陣列模擬棧,資料就放在該陣列
private int top = -1;// top表示棧頂,初始化為-1private int maxSize; // 棧的大小
private int[] stack; // 陣列,陣列模擬棧,資料就放在該陣列
private int top = -1;// top表示棧頂,初始化為-1
2.構造器
public ArrayStack(int maxSize) { this.maxSize = maxSize; stack = new int[this.maxSize]; }
3.棧滿
public boolean isFull() {
return top == maxSize - 1;
}
4.棧空
public boolean isEmpty() {
return top == -1;
}
5.入棧-push
public void push(int value) {
//先判斷棧是否滿
if(isFull()) {
System.out.println("棧滿");
return;
}
top++;
stack[top] = value;
}
6.出棧-pop, 將棧頂的資料返回
public int pop() { //先判斷棧是否空 if(isEmpty()) { //丟擲異常 throw new RuntimeException("棧空,沒有資料~"); } int value = stack[top]; top--; return value; }
7.顯示棧的情況[遍歷棧], 遍歷時,需要從棧頂開始顯示資料
public void list() {
if(isEmpty()) {
System.out.println("棧空,沒有資料~~");
return;
}
//需要從棧頂開始顯示資料
for(int i = top; i >= 0 ; i--) {
System.out.printf("stack[%d]=%d\n", i, stack[i]);
}
}