40 用棧實現佇列

2021-10-25 20:17:36 字數 1471 閱讀 7230

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

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

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

例1:

輸入:push(1)

pop()

push(2)

push(3)

top()

pop()

輸出:1

22

例2:

輸入:push(1)

push(2)

push(2)

push(3)

push(4)

push(5)

push(6)

push(7)

push(1)

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

假設呼叫pop()函式的時候,佇列非空

public class myqueue 

/** @param element: an integer

* @return: nothing

*/public void push(int element)

/** @return: an integer

*/public int pop()

//            int result = next.pop();

//            while (!next.empty())

return stack.pop();}/*

* @return: an integer

*/public int top()

//            int result = next.peek();

//            while (!next.empty())

return stack.peek();

}}public class myqueue

/** @param element: an integer

* @return: nothing

*/public void push(int element)

/** @return: an integer

*/public int pop()

int result = next.pop();

while (!next.empty())

return result;}/*

* @return: an integer

*/public int top()

int result = next.peek();

while (!next.empty())

return result;

}}

lintcode 用棧實現佇列 40

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

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

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

LintCode刷題 40 用棧實現佇列

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