資料結構 棧和佇列

2021-10-08 15:17:33 字數 690 閱讀 6718

利用兩個站s1,s2來模擬乙個佇列,已知棧的運算有:放入元素、刪除隊首元素、判斷棧是否為空、判斷棧是否滿了。

利用這兩個棧來實現的佇列運算有:把元素放入佇列、把元素從佇列中刪除、判斷佇列是否為空。

使用乙個棧來進行輸入,乙個棧來進行輸出。判斷佇列是否為空就判斷兩個棧是否同時為空。

那怎麼實現輸入輸出呢?直接把要進佇列的資料放進s1棧。當佇列的要求有輸出的時候,我們把s2棧的元素輸出乙個(s2棧頂元素)。當s2棧中是空的,那麼就把s1棧的元素全部放進s2棧中(僅當s2棧中沒有元素的時候)。

#include

using

namespace std;

typedef

int elemtype;

stack s1, s2;

bool

queueempty()

bool

enqueue

(elemtype x)

bool

dequeue

(elemtype &x)}

x = s2.

top(

);s2.

pop();

cout<<

"出 "

<

'\n'

;return

true;}

intmain()

資料結構 棧和佇列

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

資料結構 棧和佇列

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

資料結構 棧和佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop node stack2.top stack2.pop return node private stack stack1 stack stack2 大家都知道斐波那契數列,現...