資料結構 棧和佇列的相互模擬

2021-09-11 01:27:25 字數 859 閱讀 3987

利用2個棧模擬佇列、利用2個佇列模擬棧

雙棧模擬佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。

初始化2個棧stack1  stack2

每次入佇列總是壓入stack1棧頂

而每次出佇列總是從stack2棧頂彈出

若stack2為空則將stack1元素全部彈出壓入stack2

(始終確保先進先出)

class queue

int pop()

else

int result=stack2.top();

stack2.pop();

return result;}}

private:

stackstack1;

stackstack2;

};

雙佇列模擬棧

初始化2個佇列queue1 queue2

每次壓入棧頂實際操作(放入乙個不為空佇列 )

每次出棧

將不為空佇列的前面size-1個元素放入另乙個空佇列

然後彈出剩下的元素(即為棧頂)

class stack

int pop() ;

資料結構 模擬棧和佇列及運用

實現乙個棧,棧初始為空,支援四種操作 1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。輸入格式 第一行包含整數m,表示操作次數。接下來m行,每行包含乙...

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...