程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java經典實例:完成一個復雜堆棧

Java經典實例:完成一個復雜堆棧

編輯:關於JAVA

Java經典實例:完成一個復雜堆棧。本站提示廣大學習愛好者:(Java經典實例:完成一個復雜堆棧)文章只能為提供參考,不一定能成為您想要的結果。以下是Java經典實例:完成一個復雜堆棧正文


堆棧(Stack)是一種罕見的數據構造,契合後進先出(First In Last Out)准繩,通常用於完成對象寄存順序的逆序。棧的根本操作有push(添加到堆棧),pop(從堆棧刪除),peek(檢測棧頂元素且不刪除)。

/**
 * Created by Frank
 */
public class ToyStack {
    /**
     * 棧的最大深度
     **/
    protected int MAX_DEPTH = 10;

    /**
     * 棧的以後深度
     */
    protected int depth = 0;

    /**
     * 實踐的棧
     */
    protected int[] stack = new int[MAX_DEPTH];

    /**
     * push,向棧中添加一個元素
     *
     * @param n 待添加的整數
     */
    protected void push(int n) {
        if (depth == MAX_DEPTH - 1) {
            throw new RuntimeException("棧已滿,無法再添加元素。");
        }
        stack[depth++] = n;
    }

    /**
     * pop,前往棧頂元素並從棧中刪除
     *
     * @return 棧頂元素
     */
    protected int pop() {
        if (depth == 0) {
            throw new RuntimeException("棧中元素曾經被取完,無法再取。");
        }

        // --depth,dept先減去1再賦值給變量dept,這樣整個棧的深度就減1了(相當於從棧中刪除)。
        return stack[--depth];
    }

    /**
     * peek,前往棧頂元素但不從棧中刪除
     *
     * @return
     */
    protected int peek() {
        if (depth == 0) {
            throw new RuntimeException("棧中元素曾經被取完,無法再取。");
        }
        return stack[depth - 1];
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved