正如標題所述,你需要使用兩個棧來實現佇列的一些操作。
佇列應支援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 題...