嘔嘔嘔
當 Pycon 志工還要寫這個真D累
所以我要偷懶一下 ;)
沒錯,題目直接點名了,這個不管哪本資料結構、演算法一定都跑不了的一個無聊題目
所以接下來幾篇都大概就是:用 queue 做 stack,用 stack 做 queue,用 linked-list 做 stack 或 queue :)
而且我也不打算做的太麻煩,就簡單就好:))
今天就從如何用 queue 做一個 stack 吧!
首先我們需要一個 queue
queue<int> q;
再來列出 queue 的功能
void push(int x) {
q.push(x);
for(int i=0;i<q.size()-1;++i){
q.push(q.front());
q.pop();
}
}
void pop() {
q.pop();
}
int top() {
return q.front();
}
bool empty() {
return q.empty();
}
也許要考慮 overflow, underflow?
不用,因為直接調用內部函數 :)
參考:https://leetcode.com/problems/implement-stack-using-queues/