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];
}
}