目录
- 题目描述
- 思路分析
- AC 代码
- 总结
掘金团队号上线,助你 Offer 临门! 点击 查看详情
一、题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
示例
由于本题太简单,示例就省了
二、思路分析
难度:简单
本题考察的是队列和栈,不管我们是用栈实现队列,还是用队列实现栈,都要求我们对二者的特性非常了解,不然只知道队列的特性,不知道栈的特性,也无法完成编码。
熟悉的小伙伴都知道,队列是先进先出结构,栈是先进后出结构。如果想用两个栈实现一个队列,那么其中一个栈肯定是用来做转换存储的。
三、AC 代码
语言:Go
代码:
package main
var stack1 [] int
var stack2 [] int
func Push(node int) {
stack1 = append(stack1, node)
}
func Pop() int{
if len(stack2) == 0 {
stack2 = append(stack2, stack1...)
stack1 = []int{}
}
res := stack2[0]
stack2 = stack2[1:]
return res
}
通过截图:
四、总结
用栈实现队列,用队列实现栈是面试时,面试官比较喜欢考的,因为栈和队列是实际开发过程中经常遇到的数据结构,不像树和图,所以非常能够考察候选者的实际动手能力和理论能力。所以,我们一定要重视。