棧和佇列都是線性結構,是特殊的線性表。
棧:僅在表尾進行插入或刪除元素的操作。表尾稱為棧頂,表頭稱為棧底。不含元素的空表為空棧。又稱為」先進後出「線性表。
棧有兩種儲存結構:順序儲存和鏈式儲存(與線性表類似)
設定top指標指向棧頂位置,base指標指向棧底位置,當top = base 時,棧為空棧。使用c語言時,不應限定棧的最大容量:先分配乙個基本容量,當空間不夠使用時,使用realloc命令進行空間擴充。
使用時,結合實際問題,利用」先進後出「的性質。
佇列僅在表的一段插入資料元素(隊尾),在標的另一端刪除資料元素(隊頭)。「先進先出」的線性表。
還有「雙端佇列」的特殊形式:限定插入和刪除操作在表的兩端進行的線性表。實際應用中有:輸入受限的雙端佇列(乙個端點允許插入和刪除、另乙個端點只允許刪除);輸出受限的雙端列表(乙個端點允許插入和刪除、另乙個端點只允許插入)。
鏈佇列:用鍊錶表示的佇列。需要兩個分別指向隊頭和隊尾的指標。可以增設乙個頭結點,頭結點指向隊頭。
迴圈佇列:用順序儲存結構實現的佇列。將連續的儲存空間想象成首尾相連的圓環,同樣有兩個分別指向隊頭和隊尾的指標。當頭指標與尾指標指向同乙個儲存位置時,隊列為空佇列。
棧和佇列筆記2
佇列也稱為堆疊,是一種先進後出,刪除和插入都在棧頂操作的線性表 棧的特性 先進後出,後進先出 最先放入棧的內容最後被拿出來,最後放入棧的內容最先被拿出來 解密回文 include include intmain 判斷字串的長度是奇數還是偶數,並找到需要進行字元匹配的起始下標 if len 2 0 e...
棧和佇列 2
佇列 佇列比棧稍微複雜一點,特別是順序儲存結構中,有乙個rear,乙個front,要把他倆連起來,挺麻煩的,還有假溢位問題,隊空隊滿的討論都是比較難的地方,需要仔細推敲。一 基本知識 佇列 只允許在一端進行插入操作,而另一端進行刪除操作的線性表。允許插入 也稱入隊 進隊 的一端稱為隊尾,允許刪除 也...
棧和佇列 2鏈棧
adrian 鏈棧元素入棧 例如,將元素 1 2 3 4 依次入棧,等價於將各元素採用頭插法依次新增到鍊錶中,每個資料元素的新增過程如圖 2 所示 鏈棧元素出棧 例如,圖 2e 所示的鏈棧中,若要將元素 3 出棧,根據 先進後出 的原則,要先將元素 4 出棧,也就是從鍊錶中摘除,然後元素 3 才能出...