剑指offer第七题:利用两个栈实现队列 扩展:利用两个队列实现栈 ...
分类:
其他好文 时间:
2016-05-18 21:44:19
阅读次数:
163
本来画了图的,可是今天传上来的图片都看不了,只能默默敲下来了思路:队列s1和队列s2Push进来的元素压入非空队列Pop操作之后的元素放在空队列入栈:(1)s1为空,s2为空把所有数据压入s1中(2)s1为空,s2不为空数据压入s2(3)s1不为空,s2为空数据压入s2出栈:(1)s2为空把..
分类:
其他好文 时间:
2016-05-15 19:57:29
阅读次数:
172
1、两个栈实现一个队列 有三种思路: 思路一:将stack1作为存储空间,将stack2作为临时缓冲区,入队时,直接压入stac1,出队时,将stack1中的元素依次出栈压入stack2中,再将stack2的栈顶元素弹出,最后将stack2中的元素再倒回给stack1 思路二:入队时,判断stack ...
分类:
其他好文 时间:
2016-05-13 20:38:54
阅读次数:
132
#include
#include
#include
#include "ioctl_led.h"
#define DEV_NAME "test-dev"
volatile bool empty = true;
//定义一个进程资源的指针变量
struct task_struct *task;
int test_open(struct inode *inode, struct file ...
分类:
系统相关 时间:
2016-05-13 15:08:20
阅读次数:
212
```#include using namespace std;const int MAXSIZE = 1000;typedef int ELEMTYPE;const int N = 10;typedef struct { ELEMTYPE data[MAXSIZE]; int head; int ... ...
分类:
编程语言 时间:
2016-05-13 12:10:30
阅读次数:
136
1.用两个栈实现队列
分析:队列的特点是“先进先出”,而栈的特点是“后进先出”,入队列时让所有的元素进到stack1中,出队列时先判断stack2是否为空,不为空直接pop即可,若为空,将stack1中所有的元素“倒入”stack2中,这样就用两个栈实现了队列。
实现代码:
class Solution
{
public:
void push(int node) {
...
分类:
其他好文 时间:
2016-05-12 16:28:22
阅读次数:
149
栈实现的是后进先出(先进后出)策略,队列实现的是先进先出策略。
1 栈
栈上的操作主要包括
INSERT操作称为压入(PUSH)。注意上溢问题,即往满栈里添加元素。
无参数版本的DELETE操作称为弹出(POP)。注意下溢问题,即从空栈上取元素。
STACK-EMPTY判断栈是否为空
栈的实现思路
用一个数组s[1..n]来实现一个最多可容纳n个元素的栈。该数组有一个参数s.top用...
分类:
其他好文 时间:
2016-05-12 15:38:30
阅读次数:
158
1.//使用两个队列实现一个栈,优化版(1.入栈只如q1,出栈将q1数据倒q2,删掉刚进来的,
//若q1无数据,从q2倒,删q2中最后一个数据2.只保证一个栈中有数据,简单,易理解)
//第一种实现template<classT>
classStack
{
public:
boolEmpty()
{
return_q1.empty()&&a..
分类:
其他好文 时间:
2016-04-25 19:43:05
阅读次数:
192