首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 經典實例:手寫簡易堆疊 - 陣列實現 LIFO 結構

     編輯:Java 綜合教學

堆疊特性

後進先出 (LIFO)。核心操作:push (入棧)、pop (出棧)、peek (查看棧頂不移除)。

基於陣列的實現

public class ToyStack {
    protected int MAX_DEPTH = 10;
    protected int depth = 0;
    protected int[] stack = new int[MAX_DEPTH];

    // 入棧
    protected void push(int n) {
        if (depth == MAX_DEPTH - 1) throw new RuntimeException("堆疊已滿");
        stack[depth++] = n;
    }

    // 出棧
    protected int pop() {
        if (depth == 0) throw new RuntimeException("堆疊為空");
        return stack[--depth]; // 先遞減再取值,實現移除效果
    }

    // 查看棧頂
    protected int peek() {
        if (depth == 0) throw new RuntimeException("堆疊為空");
        return stack[depth - 1];
    }
}

關鍵點解析

  • depth 指向下一個可寫入位置,亦代表當前元素個數
  • pop() 使用 --depth 先移動指標再取值,邏輯上完成「移除」
  • 固定容量陣列,滿時拋出異常 (生產環境建議動態擴容)
  • 僅支援 int 型別,進階版可用泛型支援任意物件
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved