You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。
你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。
你可以假设所有操作都是有效的(例如, 对一个空的栈不会调用 pop 或者 top 操作)。
// 可以借助go语言自带的container/list结构来完成typeMyStackstruct {
list*list.List
}
/** Initialize your data structure here. */funcConstructor() MyStack {
returnMyStack{list : list.New()}
}
/** Push element x onto stack. */func (this*MyStack) Push(xint) {
this.list.PushBack(x)
}
/** Removes the element on top of the stack and returns that element. */func (this*MyStack) Pop() int {
// 这里注意需要返回值是一个int,但list结构返回的是一个interface{},所以我需要进行类型转换// 具体的可以参考https://golang.org/ref/spec#Type_assertionsreturnthis.list.Remove(this.list.Back()).(int)
}
/** Get the top element. */func (this*MyStack) Top() int {
returnthis.list.Back().Value.(int)
}
/** Returns whether the stack is empty. */func (this*MyStack) Empty() bool {
returnthis.list.Len() ==0
}
/** * Your MyStack object will be instantiated and called as such: * obj := Constructor(); * obj.Push(x); * param_2 := obj.Pop(); * param_3 := obj.Top(); * param_4 := obj.Empty(); */
The text was updated successfully, but these errors were encountered:
使用队列实现栈的下列操作:
注意:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-stack-using-queues
The text was updated successfully, but these errors were encountered: