線性儲存模擬棧和佇列

2021-09-02 09:27:40 字數 403 閱讀 1088

一般所謂的線性儲存基本是就是陣列和動態分配的儲存空間,在模擬棧和佇列的時候,使用乙個迭代器作為棧頂或者隊首隊尾,這個迭代器的賦值比較講究,在初始化的時候賦值為-1最為方便,既便於判空又便於儲存。在插入的時候使用陣列stack[ ]和迭代器i,

插入元素element,stack[ ++i ] = element ; 這樣,i自然就指向了棧頂的元素,同樣,在pop的時候,element = stack [ i-- ] ; 

佇列同理,對於隊首和隊尾都使用這樣的原理,使隊首和隊尾直接指向相應的元素。

在乙個陣列模擬雙端棧的時候,開乙個長度為maxsize的陣列 destack[ maxsize],

對於一端的棧頂賦值為-1,另一端賦值為maxsize,因為這兩個值都是正常時取不到的,

利用--i,和++i進行賦值操作

用棧模擬佇列和佇列模擬棧

棧 先進後出 filo 佇列 先進先出 fifo class myqueue 兩棧模擬佇列 def init self self.input self.output 進佇列 defpush self,x 出佇列 defpop self self.peek return self.output.pop...

模板線性棧和佇列

實現了棧和佇列的基本操作 棧 ifndef afx xtstack h define afx xtstack h if msc ver 1000 pragma once endif include xtlist.h template class xtstack 以上是標頭檔案 template xt...

線性表 棧 佇列的的順序儲存和鏈式儲存

先概括一下線性表順序儲存和鏈式儲存。線性表的順序儲存是用一組位址連續的儲存單元依次儲存線性表的資料元素。線性表的鏈式儲存是用指標將儲存線性表中的資料元素的那些單元依次串聯在一起。接下來說明。如圖所示結果,順序儲存插入 刪除 節點比鏈式儲存的速度慢 而查詢操作有基於序號的查詢,順序儲存比鏈式儲存的速度...