全部代码 基本思想:栈1用来添加(直接添加即可),栈2用来删除(先判断栈2是否是空,如果是空,把栈1的元素弹出,添加到栈2中,然后弹出栈2的栈顶元素,作为出队的元素;如果栈2非空,直接弹出栈2的栈顶元素,作为出队的元素即可)。 ...
分类:
其他好文 时间:
2017-11-18 16:01:28
阅读次数:
158
1 class Queue: 2 def __init__(self): 3 self.stack1 = [] 4 self.stack2 = [] 5 6 def push(self, node): 7 self.stack1.append(node) 8 9 def pop(self): 10 ... ...
分类:
其他好文 时间:
2017-11-05 17:55:58
阅读次数:
204
接着上一篇“使用两个队列模拟一个栈”,这里该如何使用两个栈模拟一个队列呢?具体实现如下: ...
分类:
其他好文 时间:
2017-11-04 19:39:58
阅读次数:
164
题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析: 我们都知道二叉树的层次遍历用的是队列。 但是这个的子树的结点是先进后出的,所以我们使用栈更加方便。 而且为了方便,我用了两个栈,因为不 ...
分类:
其他好文 时间:
2017-11-03 13:05:30
阅读次数:
169
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析: 代码: ...
分类:
其他好文 时间:
2017-10-27 13:13:57
阅读次数:
101
今天终于有时间来写这个了,我为了简单,就没有用自定义结构来实现栈,直接用了两个数组来实现栈结构。 这个算法,根据理解个人认为两个栈实现队列最主要考察的应该是用链栈来实现,感觉如果是链栈来实现对于节点的处理会稍微麻烦一些吧。不然的话并不难,就是数组下标的处理罢了。但尽管是数组也还是挺麻烦的,对于下标处 ...
分类:
其他好文 时间:
2017-10-21 12:39:30
阅读次数:
209
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题目分析 栈是先进后出,队列是先进先出,因此两个栈,一个用来push,一个用来pop,同时注意下两个栈不为空的时候。 代码 运行结果 ...
分类:
其他好文 时间:
2017-10-18 12:31:55
阅读次数:
114
(说明:本博客中的题目、题目详细说明及参考代码均摘自 “何海涛《剑指Offer:名企面试官精讲典型编程题》2012年”) 题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点功能。 进一步详细说 ...
分类:
编程语言 时间:
2017-10-15 21:25:10
阅读次数:
309
前缀表达式: + 3 * 2 + 5 12 这个式子=23 具体计算方法是: 设两个栈,分别为数字栈和符号栈 每遇到一个符号,将其压栈,遇到一个数字,也压栈 如果发现数字栈中有数字,所以将数字栈首弹出,字符栈首弹出,和新的数运算 运算结果压入数字栈 上面表达式为:2*3+5+12 中缀表达式: 和平 ...
分类:
其他好文 时间:
2017-10-13 19:08:36
阅读次数:
97
这题也很容易想到:一个栈出栈到另一个栈,然后另一个栈再出栈的顺序将是队列的顺序(原序列逆序的逆序是正序) 思路:两个栈,stack1,stack2; stack1负责存放元素,stack2负责暂时存放stack1的一次出栈,为了改变stack1里面元素的存放顺序 入栈操作:1.先将stack1依次出 ...
分类:
其他好文 时间:
2017-10-13 12:45:08
阅读次数:
252