1. 用两个栈实现一个队列


实现代码:


2. 用两个队列实现一个栈



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