面試題之 用兩個棧實現佇列

2022-02-28 15:07:59 字數 568 閱讀 7199

題目很簡單,與之相似的還有用兩個佇列實現棧,思路類似都是用乙個村乙個倒,類似負負得正嘛。

具體分析一下兩個棧實現佇列,設這兩個分別為s1和s2,我們從入隊開始,最開始只要直接壓倒s1中,然後出隊,此事要先將元素全部彈到出再放到s2中;現在的問題是當兩個棧都有東西的時候要怎麼處理,其實分析一下我們發現s2中的元素就是最先進的,所以pop只要彈s2就行,同理壓棧只要壓到s1裡面,**如下:

1 #include2 #include3 #include4

using

namespace

std;

5const std::string push="

push";

6const std::string pop="

pop";7

intmain()824

else

2531

else

3238

if(!s2.empty())

3943

else

4447}48

}49}50

}51return0;

52 }

面試題之用兩個棧實現乙個佇列

本篇部落格主要講述內容 面試題之用兩個棧實現乙個佇列 實現思路 用兩個棧實現乙個佇列 類似於兩個佇列實現乙個棧,就主要體現出佇列的 先進先出的 原則,即實現push和pop兩個操作 主要實現難點思路分析 實現pop時就稍微有點技巧,如果s2不為空,則直接pops2,為什麼呢?很簡單,如果s2不為空,...

面試題 兩個佇列實現棧

兩個佇列實現棧 前提已知 typedef struct queue queue void initqueue queue q void enqueue queue q,int key int dequeue queue q int sizeofqueue queue q int isqueueemp...

面試題7 兩個棧實現佇列

已知下面stack類及其3個方法push pop和 count,請用2個stack實現queue類的入隊 enqueue 出隊 dequeue 方法。class stack class queue 這道題應該不算難,比起 程式設計之美 中微軟那些什麼 翻烙餅 的面試題,難度上差遠了。況且,由於時間關...