用棧實現佇列 LintCode

2021-08-18 19:47:59 字數 907 閱讀 1249

正如標題所述,你需要使用兩個棧來實現佇列的一些操作。

佇列應支援push(element),pop() 和 top(),其中pop是彈出佇列中的第乙個(最前面的)元素。

pop和top方法都應該返回第乙個元素的值。

樣例 比如push(1), pop(), push(2), push(3), top(), pop(),你應該返回1,2和2

挑戰 僅使用兩個棧來實現它,不使用任何其他資料結構,push,pop 和 top的複雜度都應該是均攤o(1)的

思路:

利用兩個棧來實現佇列,當push時,元素壓入stack1,當進行pop或top操作時,取stack2的棧頂或出棧,若此時stack2為空,將stack1的元素出棧並壓入stack2中(保證先進先出),直至stack1為空。

#ifndef c40_h

#define c40_h

#include

#include

using

namespace

std;

class myqueue

/** @param element: an integer

* @return: nothing

*/void push(int element)

/** @return: an integer

*/int pop()

}val = stack2.top();

stack2.pop();

return val;}/*

* @return: an integer

*/int top()

}return stack2.top();

}stack

stack1, stack2;

};#endif

Lintcode 用棧實現佇列

正如標題所述,你需要使用兩個棧來實現佇列的一些操作。佇列應支援push element pop 和 top 其中pop是彈出佇列中的第乙個 最前面的 元素。pop和top方法都應該返回第乙個元素的值。樣例 比如push 1 pop push 2 push 3 top pop 你應該返回1,2和2 挑...

lintcode 用棧實現佇列 40

正如標題所述,你需要使用兩個棧來實現佇列的一些操作。佇列應支援push element pop 和 top 其中pop是彈出佇列中的第乙個 最前面的 元素。pop和top方法都應該返回第乙個元素的值。樣例 比如push 1 pop push 2 push 3 top pop 你應該返回1,2和2 挑...

LintCode刷題 40 用棧實現佇列

正如標題所述,你需要使用兩個棧來實現佇列的一些操作。佇列應支援push element pop 和 top 其中pop是彈出佇列中的第乙個 最前面的 元素。pop和top方法都應該返回第乙個元素的值。樣例 比如push 1 pop push 2 push 3 top pop 你應該返回1,2和2 題...