题目:用两个栈实现一个队列。
type Queue struct {
stack1 []int
stack2 []int
//cap int
}
func (q *Queue) push(val int) {
q.stack1 = append(q.stack1, val)
//q.cap++
}
func (q *Queue) pop() int {
if len(q.stack2) < 1 {
for len(q.stack1) > 0 {
q.stack2 = append(q.stack2, q.stack1[len(q.stack1)-1])
q.stack1 = q.stack1[:len(q.stack1)-1]
}
}
val := q.stack2[len(q.stack2)-1]
q.stack2 = q.stack2[:len(q.stack2)-1]
//q.cap--
return val
}
func (q *Queue) isEmpty() bool {
if len(q.stack1) == 0 && len(q.stack2) == 0 {
return true
} else {
return false
}
}