堆棧是什麼,通俗說一下

引用地址:http://iask.sina.com.cn/b/4230816.html堆棧是一種執行「後進先出」算法的數據結構。 

設想有一個直徑不大、一端開口一端封閉的竹筒。有若干個寫有編號的小球,小球的直徑比竹筒的直徑略小。如今把不一樣編號的小球放到竹筒裏面,能夠發現一種規律:先放進去的小球只能後拿出來,反之,後放進去的小球可以先拿出來。因此「先進後出」就是這種結構的特色。 

堆棧就是這樣一種數據結構。它是在內存中開闢一個存儲區域,數據一個一個順序地存入(也就是「壓入——push」)這個區域之中。有一個地址指針總指向最後一個壓入堆棧的數據所在的數據單元,存放這個地址指針的寄存器就叫作堆棧指示器。開始放入數據的單元叫作「棧底」。數據一個一個地存入,這個過程叫作「壓棧」。在壓棧的過程當中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減 1。這個過程叫作「彈出pop」。如此就實現了後進先出的原則。 

堆棧是計算機中最經常使用的一種數據結構,好比函數的調用在計算機中是用堆棧實現的。 
堆棧能夠用數組存儲,也能夠用之後會介紹的鏈表存儲。 
下面是一個堆棧的結構體定義,包括一個棧頂指針,一個數據項數組。棧頂指針最開始指向-1,而後存入數據時,棧頂指針加1,取出數據後,棧頂指針減1。
相關文章
相關標籤/搜索