Lintcode 用棧實現佇列

2021-07-09 20:32:34 字數 615 閱讀 8033

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

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

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

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

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

解:入隊將元素放入stack1頂部,每次出隊取stack2頂元素。因此當stack2空時,將stack1內元素倒入stack2即可。當出隊倒入時可少倒最後乙個元素,直接從stack1出隊。

public

class queue

public

void

push(int element)

public

intpop() else

return stack1.pop();}}

public

inttop() else

return stack2.peek();}}

}

用棧實現佇列 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 題...