首頁 >常見問題 >如何理解什麼是堆疊

如何理解什麼是堆疊

coldplay.xixi
coldplay.xixi原創
2021-03-24 15:36:5920986瀏覽

堆疊都是一種資料項依序排列的資料結構,只能在一端【稱為堆疊頂端(top)】對資料項進行插入與刪除;在單晶片應用中,堆疊是個特殊的儲存區,主要功能是暫時存放資料和位址,通常用來保護斷點和現場。

如何理解什麼是堆疊

本文操作環境:Windows7系統,Dell G3電腦。

堆疊是一個特定的儲存區或暫存器,它的一端是固定的,另一端是浮動的 [1]  。堆這個儲存區存入的數據,是一種特殊的資料結構。所有的資料存入或取出,只能在浮動的一端(稱棧頂)進行,嚴格按照「先進後出」的原則訪問,位於其中間的元素,必須在其棧上部(後進棧者)諸元素逐一移出後才能取出。在內記憶體(隨機記憶體)中開闢一個區域作為堆疊,叫軟體堆疊;用暫存器構成的堆疊,叫硬體堆疊。

單晶片應用程式中,堆疊是個特殊儲存區,堆疊屬於RAM空間的一部分,堆疊用於函數呼叫、中斷切換時保存和恢復現場資料。堆疊中的物體具有一個特性:第一個放入堆疊中的物體總是被最後拿出來, 這個特性通常稱為先進後出 (FILO—First-In/Last-Out)。堆疊中定義了一些操作, 兩個最重要的是PUSH和POP。 PUSH(入棧)操作:堆疊指標(SP)加1,然後在堆疊的頂端加入一 個元素。 POP(出棧)操作相反,出棧則先將SP所指示的內部ram單元中內容送入直接位址尋址的單元中(目的位置),然後再將堆疊指標(SP)減1。這兩種操作實現了資料項的插入和刪除。

想了解更多程式設計學習,請關注php培訓欄位!

#

以上是如何理解什麼是堆疊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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