Ⅰ 堆棧是什麼意思
類似於隊列,堆棧是個簡單的數據存儲結構。堆棧中數據進出的順序很重要,舉個例子,餐廳的盤子堆,盤子洗完要堆到上面,而不是插到下面的某個位置(相信不會有人那麼做)。當廚師要用到盤子時從最上面的開始拿。即最先放在堆里的盤子會被最後一個用到。
定義:堆棧就是只能在一端插入和刪除數據的鏈表,這個端就叫做棧頂(top),最後一個添加的數據第一個被刪除。因此,這也叫後進先出(LAST IN FIRST OUT)鏈表或是先進後出鏈表(FIRST IN LAST OUT)。
對於堆棧有兩種操作:
進棧指令(PUSH):在棧中現有元素頂部添加一個元素,新加入的元素變為最頂端的元素。
出棧指令(POP):取出棧頂元素,刪除棧中的這個元素。
有些情況下,棧的最大長度有限。如果棧中元素已經達到最大長度,再用進棧指令會造成堆棧上溢出(stack overflow),相似的,如果堆棧已空還用出棧指令會造成堆棧下溢出(stack underflow)。