1. 用两个栈实现一个队列
实现代码:
2. 用两个队列实现一个栈
因为push的时候是往任意一个不为空的栈里添加,栈是先进后出所以把栈里的元素一个个弹出来保存在另一个栈,剩下最后一个就是最先的元素,此时把它弹出就实现了队列的pop出队操作。下次pop的时候一样再倒腾一遍就行了。
top也是一样的原理,只不过输出了最先进入的元素之后还得保存回去。
实现代码:
3. 包含min函数的栈
思路就是用多一个栈来保存当前栈的最小值
实现代码:
因为push的时候是往任意一个不为空的栈里添加,栈是先进后出所以把栈里的元素一个个弹出来保存在另一个栈,剩下最后一个就是最先的元素,此时把它弹出就实现了队列的pop出队操作。下次pop的时候一样再倒腾一遍就行了。
top也是一样的原理,只不过输出了最先进入的元素之后还得保存回去。
实现代码:
思路就是用多一个栈来保存当前栈的最小值
本文标题:队列和栈的相互转化
本文链接:https://www.haomeiwen.com/subject/janzyttx.html
网友评论