堆疊是一種後進先出(Last In First Out)(LIFO)的資料結構,換句話說,堆疊就是將數據排成一列,由下往上堆放文件,只能從最新添加的數據開始存取。好處是,隨時都能存取最新數據。堆疊與佇列常放在一起討論,不過在此處,我們著重於堆疊的了解,明天再來看佇列的特性。
根據堆疊後進先出的特性,進行兩種的操作:
這邊有個小提醒,堆疊是線性結構,在操作上的時間複雜度為O(1)
這邊以餐盤做比喻,在一碟餐盤中,若要使用一個餐盤,會先拿取最上面,再依序往下拿取,以這種方式會更容易理解堆疊。
我們先以Python程式碼簡單的理解堆疊的概念,使用append(添加)以及pop(移除)進行操作,每一次添加及刪除都以最後一組開始(後進先出)。
x是空列表
x = []
#append:添加
x.append("red")
print(x) #輸出結果:['red']
x.append("green")
print(x) #輸出結果:['red', 'green']
x.append("blue")
print(x) #輸出結果:['red', 'green', 'blue']
#pop:移除
x.pop()
print(x) #輸出結果:['red', 'green']
x.pop()
print(x) #輸出結果:['red']
x.pop()
print(x) #輸出結果:[]
var stack = []
stack.push(1);
console.log(stack); // [1]
stack.push(2);
console.log(stack); // [1,2]
stack.push(3);
console.log(stack); // [1,2,3]
console.log(stack.pop()); // 3
console.log(stack); // [1,2];
console.log(stack.pop()); // 2
console.log(stack); // [1];
console.log(stack.pop()); // 1
console.log(stack); // []; -> empty