题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题代码: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题代码: ...
分类:
其他好文 时间:
2018-09-04 22:33:55
阅读次数:
216
【题目】 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。 【解答】? 栈的特点是先进后出,而队列的特点是先进先出。我们用两个栈正好能把顺序反过来实现类似队列的操作。 具体实现上,是把一个栈作为压入栈,在压入数据时只往这个栈中压入,记为stackPush;另一个栈只作 ...
分类:
其他好文 时间:
2018-09-02 18:42:27
阅读次数:
153
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 首先要明确栈和队列的特性,栈是后入先出的数据类型,队列是先进先出的数据类型,那么就可以用两个栈,一个存储新的push进队列的数据,另一个栈用来pop出队头的数据,push很简单,直接利用栈的特性ap ...
分类:
其他好文 时间:
2018-08-30 02:03:42
阅读次数:
136
```C++ class Solution { public: void push(int node) { stack1.push(node); } int pop() { if(stack1.empty() && stack2.empty()){ return -1; } if(!s... ...
分类:
其他好文 时间:
2018-08-21 21:04:28
阅读次数:
141
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 程序代码: 【方法一】 1 class Solution 2 { 3 public: 4 5 void push(int node) { 6 stack1.push(node); 7 8 9 } 10 ...
分类:
其他好文 时间:
2018-08-17 00:39:25
阅读次数:
134
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析:入栈时只入栈1,出栈为栈2;若栈2不为空,直接出栈;否则,将栈1中的值依次入栈2,之后栈2出栈 ...
分类:
其他好文 时间:
2018-08-05 16:53:12
阅读次数:
159
题目 用两个栈实现队列。队列声明如下,实现appendTail和deleteHead,分别完成在队列尾部插入节点,和头部删除节点的功能。 思路 尾部插入:直接向stack1压入即可 头部删除:先进先出,因此在删除时,若stack1非空,先将stack1全部元素压入stack2,然后stack2.po ...
分类:
其他好文 时间:
2018-07-09 00:35:21
阅读次数:
126
时间限制:1秒 空间限制:32768K 热度指数:243863 本题知识点: 队列 栈 算法知识视频讲解 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 给出代码: class Solution { public: void push(int node ...
分类:
其他好文 时间:
2018-07-03 11:57:33
阅读次数:
138
这个是一个很常见的算法,在剑指offer中有详细的讲解,在这里提供一种优化的 "实现" 。该实现的优点是不需要每次在数据出列时,将数据copy到另一个堆栈中。并写了其对应的 "单元测试" 。 主要思想 主要实现是在类中定义了两个全局变量,标明当前队列中两个栈的状态, isMain 表示现在数据存储在 ...
分类:
其他好文 时间:
2018-06-29 00:15:31
阅读次数:
171
两个栈实现队列的思路: 队列的特点是的先进先出; 栈的特点是先进后出; 将数据存入栈1,再按其输出的特点存入栈2; 这样数据最后就可以实现先进先出的特点; 代码实现: ...
分类:
其他好文 时间:
2018-06-25 01:17:14
阅读次数:
141