資料結構 3 棧,佇列

2022-06-27 15:30:13 字數 821 閱讀 4028

棧是一種特殊的線性表。

插入和刪除操作都只能在棧頂進行,也就是,後進先出。

其實我們程式設計,程式執行的順序,就是棧的入棧和出棧順序

當我們main方法裡呼叫func1時,會把方法main和它的引數壓到棧底,再壓入方法func1和它的引數,fun2同理,出棧就是方法實際執行的過程。這也是為什麼,main的區域性變數a,b傳給了func1,假如func1中修改了它們,但是執行完func1後執行c=a+b時,發現a.b都還是原來的值,因為在函式呼叫棧中,它們根本不在乙個記憶體位置(當然我們加上ref 關鍵字,就可以讓func1的引數a,b引用main的引數a,b,實現改變)。

佇列也是一種特殊的線性表

只允許在一端插入,在另一端刪除,也就是先進先出。

雙端佇列仍然是一種線性表

棧和佇列能實現的功能雙端佇列都能實現。

我們redis的佇列型別,就是雙端佇列。

資料結構 3 棧和佇列

棧和佇列也算是 資料型別。以為都是在首位操作,棧和佇列 克服了 線性表新增刪除需要移動大量元素的弱點。棧僅在尾部進行插入和刪除,尾部叫做棧頂,表頭叫做棧底。後進先出。last in first out lifo 空棧。插入叫入棧,刪除元素叫出棧。順序棧,的順序儲存結構是利用一組 位址連續的儲存單元,...

《資料結構》 3棧和佇列

堆疊是限定插入和刪除操作都在表的同一端進行的線性表。特點為lifo 後進先出 堆疊的順序表示.c includetypedef struct 堆疊結構體定義 void create stack s,int msize 建立乙個能容納msize個單元的空堆疊 void destroy stack s ...

資料結構 棧 佇列

二 佇列 注 鏈式儲存 定義鍊錶元素所儲存的資料型別 以int為例 typedef int elemtype 定義棧的結點結構及結點指標型別 typedef struct stacknode stacknode,stacknodeptr 定義指向棧的結構 typedef struct linksta...