用棧實現佇列的進隊出隊操作

2021-07-22 05:43:44 字數 574 閱讀 8361

假設有兩個棧stack1,  stack2 ,用這兩個棧來實現佇列的push()  和  pop()  操作

思路:進隊:push()  操作,直接使用stack1.push(),將元素進棧即可

出隊:pop()   操作,先判斷stack2是否為空。

若不為空,則stack2直接出棧即可;

若為空,則將stack1中的元素全部出棧,並依次壓入棧stack2中,再將stack2中的元素出棧,即可完成操作。

c++實現**:

class solution

int pop()

temp = stack2.top();

stack2.pop();

return temp;

}private:

stackstack1;

stackstack2;

};

說明:這裡用到的stack2.empty()函式,當stack2為空時返回true,否則返回false
類似的想法可以用佇列實現棧的進棧出棧操作

迴圈佇列(進隊,出隊)

描述 根據給定的空間構造順序迴圈佇列,規定隊滿處理方法為少用乙個元素空間。例如,給定5個元素空間構造迴圈佇列,則只能存放4個元素。試根據入隊及出隊操作判斷佇列最後的元素存放情況,並輸出最後佇列中的元素值,即完成給定入隊及出列操作後一次性全部出隊的元素值。要求採用順序佇列完成。輸入輸入的第一行為乙個自...

佇列的初始化 進隊,出隊操作 C語言實現

標頭檔案和機構體 include include typedef int elemtype 鍊錶節點 typedef struct linkqueuenode linkqueue 指向鍊錶的頭結點的節點 typedef struct lqueue lqueue 初始化佇列 lqueue init l...

佇列的入隊 出隊操作

程式設計實現佇列的入隊 出隊操作 先進先出 include using namespace std node表示佇列中每個節點元素 typedef struct node node queue表示佇列 typedef struct queue queue 建立空佇列 queue createqueu...