用栈实现队列,用队列实现栈 Queue Using Stacks and Stack Using Queues
来源:互联网 发布:淘宝如何延期付款 编辑:程序博客网 时间:2024/06/06 00:50
栈的结构是先入后出。队列的结构是先入先出。
用两个栈实现一个队列的一种方法:
出队操作:对于栈中的元素,最里面的是最早放进去的。而要出队的就是最早的元素,所以需要把栈里的元素全腾出来放另一个栈中,这样最早的元素就成为另一个栈的最外面的元素,可以直接拿走出队。
入队操作:出队操作使得会使得栈的顺序逆置,因此我要先逆回来,让最早放进去的元素还在最里面。
Stack in;Stack out;void enqueue( int value ) { while( !out.isEmpty() ) { in.push( out.pop() ); } in.push( value );}int dequeue() { while( !in.isEmpty() ) { out.push( in.pop() ); } return out.pop();}
这样的操作使得出入栈的代码看起来很对称。其实也可以用不对称操作方法,一样达到实现队列的效果。
用两个队列实现一个栈的一种方法:
出栈操作:从一个队列中把数据一个一个出队放到另一个队去,当发现是最后一个元素了(即最后来的元素),不再让他入队了,直接拿走出栈。
入栈操作:出栈操作使得数据全都到了另一个队去了,我再全部拿会来。然后入队。
queue in;queue out; void push(int value){ while(!out.isEmpty()) in.enqueue(out.dequeue()); in.enqueue(value);}int pop(){ while(1) { value = in.dequeue(); if(in.isEmpty()) return value; else out.enqueue(value); }}
0 0
- 用栈实现队列,用队列实现栈 Queue Using Stacks and Stack Using Queues
- 队列-Implement Queue using Stacks(用栈实现队列)
- Implement Queue using Stacks(用栈实现队列)
- 232.Implement Queue using Stacks(用栈实现队列)
- 232. Implement Queue using Stacks (用栈实现队列)
- 栈-Implement Stack using Queues(用队列实现栈)
- Implement Stack using Queues 用队列实现栈
- 225.Implement Stack using Queues (用队列实现栈)
- Implement Stack using Queues 用队列实现栈
- 225. Implement Stack using Queues (用队列实现栈)
- Implement Queue using Stacks 两个栈实现队列
- Leetcode232. Implement Queue using Stacks[栈实现队列]
- LeetCode(23)-Implement Queue using Stacks(栈实现队列)
- leetcode 232. Implement Queue using Stacks 双栈实现队列
- Leetcode 225 Implement Stack using Queues 使用队列实现栈
- Implement Stack using Queues 两个队列实现一个栈
- 两个队列实现一个栈[leetcode]Implement Stack using Queues
- leetcode 225. Implement Stack using Queues 双队列实现栈
- 资源的导入和导出
- Effective Java (2) - 遇到多个构造器参数时要考虑用构建器
- java中使用LinkedList类的实例
- MySQL学习笔记 2
- 阿里云CentOS环境搭建(Tomcat、JDK、MySql)
- 用栈实现队列,用队列实现栈 Queue Using Stacks and Stack Using Queues
- 链表
- Box of Bricks
- MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart
- Linux makefile 教程 非常详细,且易懂
- 接口
- 软件工程-面向对象方法学的优点
- CRF做图像语义分割的资源
- java获取相对路径