栈 栈模型 栈(stack)是限制对元素的插入(push)和删除(pop)只能在一个位置上进行的表,该位置是表的末端,叫做栈的栈顶(top)。 栈的基本操作只有两种,压入栈(push)和弹出栈顶(pop),且只能作用于栈顶。(只有栈顶元素是可访问的 你可以把栈结构理解成一个底部封闭,顶部打开的桶。最 ...
分类:
其他好文 时间:
2019-10-31 13:53:02
阅读次数:
101
调用约定(Calling convention)决定以下内容:函数参数的压栈顺序,由调用者还是被 调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定: 1、_cdecl 按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于“C”函数或者变量,修饰 名是在函数名前加下划线。对于“C ...
分类:
其他好文 时间:
2019-10-31 13:28:27
阅读次数:
82
JVM运行时内存结构 JVM内存模型 JVM运行时内存=共享内存区+线程内存区 共享内存区 共享内存区=持久代+堆 持久代=方法区+其他 堆=Old Space+Young Space Young Space=Eden+S0+S1 持久代 JVM用持久代(Permanent Space)实现方法区, ...
分类:
其他好文 时间:
2019-10-30 00:11:05
阅读次数:
107
二叉树中序遍历 递归实现: 非递归实现。 分析: 1,使用堆栈作为存储结构 2, 当节点不为空或者堆栈,每次根据给定节点对其左子树进行入栈。 3,出栈,并且保存节点值,然后将右节点赋给当前节点(不用判断是否为空,若为空,刚好不用进行左节点遍历的步骤) ...
分类:
其他好文 时间:
2019-10-28 01:17:25
阅读次数:
86
递归遍历 前序 中序 后序 非递归遍历 前序 ? 先访问根节点,再将其入栈,以便之后返回,就这样一直遍历到左子树最下面,然后出栈,进入右子树,继续开始遍历。 中序 后序 ...
分类:
其他好文 时间:
2019-10-26 20:40:28
阅读次数:
89
变量的可见性又叫做作用域。 一般来说变量如果是在栈上分配的,那么变量的可见性和生命周期是一样的。但在堆区,静态区,常量区的变量声明周期大于变量的可见性(如果理解有误,请大佬们指出)。 即指针对应的是可见性,而指针所指向的对象(也即指针所指向的内存)对应的是生命期。因为指针是在栈上分配存储的(指针也是 ...
分类:
其他好文 时间:
2019-10-26 10:42:56
阅读次数:
103
额。。。 T1是构造题,画出一棵树然后开始想,可以考虑黑白染色,黑点刚进栈就输出,白点出栈再输出,跳3条边的情况就是从一个点的一个子树跳到另一个的情况。 启发:对于这种构造题,先考虑什么时候可以简单操作(跳两边),什么时候必须用较复杂的操作(跳三边),这样思路就会清晰,写起来也就明了了。 复杂度:$ ...
分类:
其他好文 时间:
2019-10-25 10:22:11
阅读次数:
92
http://poj.org/problem?id=2255 题意:给定先序遍历和中序遍历,求后序遍历。 回忆以前上DataStructure课的时候貌似写过类似的。 先从先序入手,从左到右扫描,进入时节点时立刻入栈,离开节点时立刻出栈。 关键是怎么知道什么时候才是立刻节点了呢? 貌似只有n^2的做 ...
分类:
其他好文 时间:
2019-10-22 13:13:00
阅读次数:
60
栈:特点:先进先出成员函数:stack()--构造empty()--判空size()--求个数top()--返回栈顶元素push--压栈pop()--出栈应用最小栈创建:(可直接返回栈中最小值,即在该栈中查找最小值复杂度为O(1))因为栈中最小值是随push和pop操作变化的,进栈时min会更新,出栈min也可能会更新,所以每个元素进栈时当前栈中最小值应该被保存下来//法一:classMinSta
分类:
其他好文 时间:
2019-10-22 12:36:56
阅读次数:
66
用汇编语言写递归程序的经验教训: 1.值的进栈与出栈:这个一定要注意,每次调用其他过程的时候,都要想想是不是要把退路保存下来,把原来的变量保存下来,有些甚至不止保存一次,有些甚至会因为分支而要在各个分支中进栈出栈。递归的还得多练,这次居然写了六个小时还被卡了一个点,由此可见我P2大概率会被干掉。 2 ...
分类:
编程语言 时间:
2019-10-20 00:47:04
阅读次数:
112