1樓:匿名使用者
堆疊是一種執行「後進先出」演算法的資料結構。
設想有乙個直徑不大、一端開口一端封閉的竹筒。有若干個寫有編號的小球,小球的直徑比竹筒的直徑略小。現在把不同編號的小球放到竹筒裡面,可以發現一種規律:
先放進去的小球只能後拿出來,反之,後放進去的小球能夠先拿出來。所以「先進後出」就是這種結構的特點。
堆疊就是這樣一種資料結構。它是在記憶體中開闢乙個儲存區域,資料乙個乙個順序地存入(也就是「壓入——push」)這個區域之中。有乙個位址指標總指向最後乙個壓入堆疊的資料所在的資料單元,存放這個位址指標的暫存器就叫做堆疊指示器。
開始放入資料的單元叫做「棧底」。資料乙個乙個地存入,這個過程叫做「壓棧」。在壓棧的過程中,每有乙個資料壓入堆疊,就放在和前乙個單元相連的後面乙個單元中,堆疊指示器中的位址自動加1。
讀取這些資料時,按照堆疊指示器中的位址讀取資料,堆疊指示器中的位址數自動減 1。這個過程叫做「彈出pop」。如此就實現了後進先出的原則。
堆疊是計算機中最常用的一種資料結構,比如函式的呼叫在計算機中是用堆疊實現的。
堆疊可以用陣列儲存,也可以用以後會介紹的鍊表儲存。
下面是乙個堆疊的結構體定義,包括乙個棧頂指標,乙個資料項陣列。棧頂指標最開始指向-1,然後存入資料時,棧頂指標加1,取出資料後,棧頂指標減1。
#define max_size 100
typedef int data_type;
struct stack;
2樓:匿名使用者
什麼意思。可以壓結構體指標。把整個結構壓進去,棧的實現複雜。
cad中如何實現堆疊出帶上下標的分數
複雜的堆疊有時候一些字元會出現錯誤,還有ddedit命令修改的時候也容易出錯。請照下列步驟 style設定文字樣式的字型檔案為isocpeur,並置為當前樣式。mt命令,先輸入下 字。將所有的文字選中,啟用第一行的堆疊按鈕 b a 結果 注意1 輸入字元中,c是直徑的符號,表示水平分數線的堆疊符號。...
如何向同學道歉,如何向女生道歉
喬科詹庫我 道歉是需要巨大的勇氣的,下面是一些道歉的方法 首先態度一定要真誠,表情也要嚴肅認真一點,說聲 對不起 讓我們和好吧!一般來說是好哥們的話,不用說太多,真心地向朋友解釋清楚事情,說明自己當時是一時沒有控制好自己的脾氣,請求朋友的見諒!道歉有時候也講究時機,看什麼錯誤,道什麼歉,有一些比較急...
如何向CrystalReportViewer和Repo
一 crystalreportviewer 通過 crystalreportviewer.parameterfieldinfo 屬性 1 crystalreportviewer 成員 公共例項屬性 parameterfieldinfo 從 crystalreportviewerbase 繼承 par...