微软,Google面试题 (18) —— 用两个栈实现一个队列
来源:互联网 发布:火爆网络的女神雅典娜 编辑:程序博客网 时间:2024/04/29 22:52
解法:有两个栈A和B。队列的appendTail操作为,将元素push进A。队列的deleteHead操作为:如果B不为空,则pop栈B的栈顶元素。如果B为空,则将A中的元素全部依次pop到B,然后pop栈B的栈顶元素。
扩展问题:如何用两个队列实现一个栈。
解法一:有两个队列C和D。
栈的push操作为:1, 将新元素添加到C的尾端。2, 如果C中只有一个元素,则不做任何工作。如果C中有超过1个元素,那么将队列C除队尾的新元素之外的其他元素依次pop,并且添加到D的尾端。保持C中只有一个元素。
栈的pop操作为:1, 此时C如果不为空,那么C中的元素即为栈顶元素,pop出该元素。2, 将D中的元素依次pop出,并且依次添加到C中。3, 将C中除队尾元素之外的其他元素依次pop出,添加到队列D。保持C中只有一个元素。
- 微软,Google面试题 (18) —— 用两个栈实现一个队列
- 面试题-----两个栈实现一个队列
- 面试题--用两个栈实现一个队列
- 经典面试题一:用两个栈实现一个队列
- 面试题 用两个栈实现一个队列
- 《剑指Offer》面试题:用两个队列实现一个栈
- 面试题8:用两个栈实现一个队列
- 面试题:用两个栈实现一个队列
- 面试题:用两个队列实现一个栈
- 面试题之用两个栈实现一个队列
- 面试题7:用两个栈实现一个队列
- 面试题7:用两个队列实现一个栈
- 58面试题-----用两个栈实现一个队列
- 面试题7—用两个栈实现队列
- 两个栈实现一个队列——栈和队列面试题(2)
- 两个队列实现一个栈——栈和队列面试题(3)
- 面试题7:用两个栈实现队列和用两个队列实现一个栈
- 栈&队列面试题之两个队列实现一个栈
- 一群人围成一个圈,依次1,2,3报数,数到3的人出列,求最后出列的哪个人
- 怎样做需求分析
- 软件开发资深人士的经验总结
- 微软基础类库MFC概述
- MPM--apache的工作模式
- 微软,Google面试题 (18) —— 用两个栈实现一个队列
- 并不是所有人都像张楚这样
- 怎样更改GridView里Select Button的Text
- 2群殴是暗示大家萨哈夫idhnjkhddushjds
- INFO[org.hibernate.type.SerializableType] - could not read column value from result set: srulaaaId13_; could not deserialize
- 转:莫大看盘
- 他们玩的不是游戏,而是寂寞
- 判断是否为undefined 类型
- 当前日期加1 日期控件calendar