堆疊的定義: 類似彈匣中的子彈一樣先進去,卻要後出來,反之則是後進去可以先出來的。
在軟體應用中,堆疊這種後進先出的資料結構應用是非常普遍的。
例如使用瀏覽器上網時,不管甚麼瀏覽器都有一個後退鍵,點擊後可以按順序存取的反向載入瀏覽過的網頁。
很多類似的軟體,例如 Word、PhotoShop 等文件或是影像編輯軟體中,都有取消 (undo) 的操作,也都是用堆疊這種方式來實現的,當然不同的軟體操作方式會有很大的差異,不過原理其實都是相同的。
堆疊 (stack): 是限定僅在串列尾進行插入和刪除操作的線性串列。
我們把允許插入和刪除的一端稱為堆疊頂 (top),另一端稱為堆疊底 (bottom),不含任何資料元素的堆疊稱為空堆疊。
堆疊又稱為後進先出 (Last In First Out) 的線性串列,簡稱 LIFO 結構。
換句話說,堆疊就像是「後進先出(LIFO)」的彈匣,只允許在同一端(堆疊頂)進行資料的插入與刪除,像是瀏覽器的上一頁或編輯軟體的取消動作都是靠它來實現的。
今日的分享就到這囉,我們明天見,掰掰!