鏈表存儲結構的棧類型
『壹』 棧結構通常採用的兩種儲存結構是和
順序存儲和鏈接存儲,通稱順序隊列和鏈隊列,
是計算機科學中一種特殊的串列形式的抽象數據類型,其特殊之處在於只能允許在鏈表或數組的一端(稱為堆棧頂端指針,英語:top)。
進行加入數據(英語:push)和輸出數據(英語:pop)的運算。另外堆棧也可以用一維數組或鏈表的形式來完成。堆棧的另外一個相對的操作方式稱為隊列。
由於堆棧數據結構只允許在一端進行操作,因而按照後進先出(LIFO, Last In First Out)的原理運作。
堆棧數據結構使用兩種基本操作:推入(壓棧,push)和彈出(彈棧,pop):
推入:將數據放入堆棧的頂端(數組形式或串列形式),堆棧頂端top指針加一。
彈出:將頂端數據數據輸出(回傳),堆棧頂端數據減一。
(1)鏈表存儲結構的棧類型擴展閱讀:
堆棧是一個特定的存儲區或寄存器,它的一端是固定的,另一端是浮動的。對這個存儲區存入的數據,是一種特殊的數據結構。所有的數據存入或取出,只能在浮動的一端(稱棧頂)進行,嚴格按照「後進先出」的原則存取,位於其中間的元素。
必須在其棧上部(後進棧者)諸元素逐個移出後才能取出。在內存儲器 (隨機存儲器) 中開辟一個區域作為堆棧,叫軟體堆棧; 用寄存器構成的堆棧,叫硬體堆棧。堆棧處理器就是一種硬體堆棧相對寄存器文件處理器來講。
它具有很多優點系統復雜度低;精簡的指令集;晶元面積小;定址方式簡單;代碼體積小;快速的中斷響應,子程序調用能力。這些優點使得堆棧處理器在工業控制領域和航空航天領域有著不可替代的地位。
『貳』 給出棧的兩種存儲結構的形式名稱,在這兩種棧的存儲結構中如何判別棧空與棧滿
【解答】(1)順序棧 (top用來存放棧頂元素的下標)
判斷棧S空:如果S->top==-1表示棧空。
判斷棧S滿:如果S->top==Stack_Size-1表示棧滿。 (2) 鏈棧(top為棧頂指針,指向當前棧頂元素前面的頭結點) 判斷棧空:如果top->next==NULL表示棧空。
判斷棧滿:當系統沒有可用空間時,申請不到空間存放要進棧的元素,此時棧滿。
『叄』 棧的存儲結構
棧同順序表和鏈表一樣,棧也是用來存儲邏輯關系為 "一對一" 數據的線性存儲結構。
棧的具體實現
棧是一種 "特殊" 的線性存儲結構,因此棧的具體實現有以下兩種方式:
順序棧:採用順序存儲結構可以模擬棧存儲數據的特點,從而實現棧存儲結構;
鏈棧:採用鏈式存儲結構實現棧結構;
棧存儲結構與之前所學的線性存儲結構有所差異,這緣於棧對數據 "存" 和 "取" 的過程有特殊的要求:
棧只能從表的一端存取數據,另一端是封閉的;
在棧中,無論是存數據還是取數據,都必須遵循"先進後出"的原則,即最先進棧的元素最後出棧。
通常,棧的開口端被稱為棧頂;相應地,封口端被稱為棧底。因此,棧頂元素指的就是距離棧頂最近的元素。