题解:可以根据输入的字符串画一个二叉树出来,然后层次遍历一下就和输出结果顺序一样,所以根据输入把大写字母当做两个小写字母的根节点,将节点即运算结果当做另一个小写字母放进栈里,和另一个字母组建生成新的树放进栈里,直到最后的的根节点也放进了栈里,开始层次遍历,用数组模拟队列进行遍历,注意因为结果的顺序是从右到左,所以注意遍历的方向问题。#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-22 17:49:42
阅读次数:
243
内存常用的区域分类:栈区(stack)、堆区(heap)、全局区(static区)、文字常量区、程序代码区。栈区:由编译器自动分配和释放,遵循”后进先出“的规则。在函数调用时,第一个进栈的是主函数中的下一条指令地址,然后是函数的各个参数(大多数C编译器中,参数从右往左入栈),然后是函数的局部变量。静...
分类:
其他好文 时间:
2014-07-18 17:23:21
阅读次数:
190
Container是一个数据容器,代表集合类或者dataview中的一行,而Container。dataitem代表该行的数据;所有的container 被存放在是一个栈堆stack中,自动的将每一个container压入栈堆内,最后一行记录先进栈,最后是第一行;(或者说栈顶是集合类的第一个cont...
分类:
Web程序 时间:
2014-07-18 00:27:35
阅读次数:
270
用数组实现栈避免了使用指针,但是存在的缺陷是必须提前确定数组的大小,一般来说,这并不是太大的问题。:数组实现栈: 首先定义一个结构,TopOfStack表示栈顶,当TopOfStack为-1时,表示空栈。数组array用于存放栈元素 进栈(push)时 ++TopOfStack 然后把元素加进数组。...
分类:
其他好文 时间:
2014-07-07 19:58:11
阅读次数:
139
逆波兰式的求解,建立一个类栈容器,遍历给定的逆波兰表达式,遇到数字就push, 遇到操作符就进行出栈,连续出两次,因为给定的四则运算符都是双目的,这里注意下这两个操作数的先后顺序,因为对于加法和乘法没关系,但是对于减法和除法是有先后关系的。然后进行相应的运算,将结果push进栈中。
这里附带说明下python中进行除法运算与c,java系列中的除法的不同,就是向下取整的问题。这种不同表现在两个操...
分类:
编程语言 时间:
2014-07-06 12:22:02
阅读次数:
235
c++中经常操作的内存分为以下几个类别:
1、栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等等。其操作方式类似于数据结构中的栈;只要栈的剩余空间大于申请空间,系统就为其提供内存,否则包异常提示栈溢出。在windows下栈是向低地址拓展的数据结构,是一块连续的内存空间,栈顶的地址和栈的最大空间是系统预定好的。。
在函数调用时,第一个进栈的是主函数的下一条指令,的地...
分类:
编程语言 时间:
2014-07-01 08:44:03
阅读次数:
265
1 /* 2 参考大神nb的代码,感觉思路不错!终于搞明白了!一开始不明白在计算表达式的时候,利用栈到底做了什么!现在感觉我们利用栈就是模拟我们书面上计算表达式, 3 将优先级高的运算先计算出来,然后放进栈中,等待下一次的计算 4 */ 5 #include...
分类:
其他好文 时间:
2014-06-15 20:28:29
阅读次数:
213
卡特兰数
栈是一种常见的数据结构,有许多关于栈的问题,其中之一就是统计元素可能的出栈序列。具体说,就是给定n个元素,依次通过一个栈,求可能的出栈序列的个数。
如果我们用直接模拟的方法,当n较大时会很费时间;
例如动态规划。令f[i,j]表示栈内有i个元素且栈外有j个元素还未进栈,那么以进栈还是出栈为决策就马上得到了转移方程f[i,j]=f[i-1,j]+f[i+1,j-1]。如此一来,很...
分类:
其他好文 时间:
2014-06-11 06:29:56
阅读次数:
296
栈的存储结构有两种:一种是线性栈,一种是链式栈。下面分别是这两种存储结构的实现。...
分类:
其他好文 时间:
2014-06-11 06:09:13
阅读次数:
226