用佇列實現棧

2021-09-07 12:10:55 字數 992 閱讀 5177

關於面試中是否應該考演算法,眾說紛紜,我不站隊,美其名曰理性看待,哈哈。

說重要的可能他們工作中須要使用大量的演算法知識,說不重要的可能他們專案中沒實用到什麼演算法知識,而且用到也已經有現成的庫替他們攻克了這些演算法問題。還沒有到須要去優化輪子的地步。

假設我是面試官,我僅僅會考最主要的演算法概念。更看重一些計算機理論知識、視野、做一件事是否明確主次之分,這些構成個人的總體素養。

用佇列實現乙個棧。這個題目見過非常多次了。但我從沒有去實現它的衝動,因我的工作中沒有碰到類似的問題,我壓根不知道什麼時候須要這樣去折騰,等到須要的時候再去折騰也還能夠,時間精力有限。不可能什麼都能提前研究透了。要是說這樣的題目能夠鍛鍊思維,好吧,那我就鍛鍊一下。寫幾行簡單的**來實現這個基於佇列的棧。

我不知道別人是怎麼實現的。有空再看看,我的實現例如以下。經測試沒啥問題:

class stack

// push element x onto stack.

void push(int x)

else if(q2.empty())

else if(qnum == 1)

q2.push(x);

qnum = 2;

} else if(qnum == 2)

q1.push(x);    

qnum = 1;

} }

// removes the element on top of the stack.

void pop()

else if(qnum == 2) }

// get the top element.

int top()

else if(qnum == 2)

} // return whether the stack is empty.

bool empty()

private:

queueq1;

queueq2;

int qnum; };

用棧實現佇列 用佇列實現棧

棧的特點 filo firstinlastout 僅能從棧頂插入,刪除元素。最基本的介面包括push 從棧頂壓入元素 pop 從棧頂彈出元素 佇列的特點 fifo firstinfirstout 僅能從隊頭刪除元素,從隊尾插入元素。最基本的介面包括enque 從隊尾插入元素 deque 從隊頭刪除元...

用棧實現佇列,用佇列實現棧。好玩!!!

因為在資料結構中,棧和佇列長得實在是太像了,將他們拿來比較是不可避免的,棧 後進先出,而佇列 先進先出。同樣是只能在一端進行操作,那麼問題來了,能相互實現?能不能得好好分析一下嘛,如果是用兩個棧來實現佇列,好像這操作可以哦。一下,你就明白!顯然用兩個棧可以實現佇列的功能,就是借助另乙個棧來中轉一下,...

232 用棧實現佇列 225 用佇列實現棧

用棧實現佇列 佇列是先進先出,實現佇列的最直觀的方法是用鍊錶。但本題是要求使用棧。本題兩個stack相互倒,負負得正 class myqueue def init self self.instack self.outstack defpush self,x def pop self if len s...