首頁  >  文章  >  鏈棧和順序棧相比,有一個比較明顯的優勢是什麼

鏈棧和順序棧相比,有一個比較明顯的優勢是什麼

青灯夜游
青灯夜游原創
2021-11-08 13:57:1517488瀏覽

和順序堆疊相比,鏈棧的優勢是:通常不會出現堆疊滿的情況。因為順序棧用數組實現,必須事先確定棧的大小,對內存的使用效率並不高,無法避免因數組空間用光而引起的溢出問題;而鏈棧因為動態申請內存,一般不會出現棧滿情況。

鏈棧和順序棧相比,有一個比較明顯的優勢是什麼

本教學操作環境:windows7系統、Dell G3電腦。

和順序堆疊相比,鏈棧有一個比較明顯的優點是:通常不會出現堆疊滿的情況。

因為順序堆疊用數組實現,必須事先確定棧的大小,對記憶體的使用效率並不高,無法避免因數組空間用光而引起的溢出問題;而鏈棧因為動態申請內存,一般不會出現棧滿情況,空棧還是會出現的。

而因為鏈棧和順序堆疊都是棧,棧先進後出,只能在棧頂進行插入和刪除操作,所以鏈棧在插入和刪除操作上對於順序棧並無優勢。

堆疊

堆疊作為資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照後進先出的原則儲存數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀取數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指標。

堆疊是允許在同一端進行插入和刪除操作的特殊線性表。允許插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。插入一般稱為進棧(PUSH),刪除則稱為退棧(POP)。棧也稱為先進後出表。

堆疊可以用來在函數呼叫的時候儲存斷點,做遞歸時要用到堆疊!

堆疊在程式的運作中有著舉足輕重的作用。最重要的是棧保存了一個函數呼叫時所需要的維護訊息,這常常稱之為堆疊幀或活動記錄。堆疊幀一般包含如下幾方面的資訊:

1.函數的回傳位址與參數

2.臨時變數:包括函數的非靜態局部變數以及編譯器自動產生的其他臨時變數。

更多相關知識,請造訪常見問題欄位!

以上是鏈棧和順序棧相比,有一個比較明顯的優勢是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn