参考《大话数据结构》P178~184——二叉树的遍历。 用书上的这个二叉树: 代码和解释如下(VS2012测试通过): 运行结果: 下图方便理解递归。但写递归代码的时候不用这么麻烦,毕竟人脑更擅长考虑递推。重点放在求解目标上,以及递归结束的条件。 ...
分类:
其他好文 时间:
2016-04-19 14:00:38
阅读次数:
205
参考《大话数据结构》P187~188——二叉树的建立。 举个简单的例子: 代码和解释如下(VS2012测试通过): 运行结果: ...
分类:
其他好文 时间:
2016-04-19 13:47:14
阅读次数:
150
思路和依据前序遍历和中序遍历重建树的思路一样,复杂度也一致,代码如下: ...
分类:
其他好文 时间:
2016-04-18 22:00:27
阅读次数:
132
题目要求给出前序和中序二叉树遍历结果,重建二叉树。树的节点值不存在冗余。 解法是给出目前处理的前序和中序的起始和结束的index。前序的第一个值为根节点的值,根据这个值在中序中查找index,从而在中序中划分左子树和右子树的遍历,递归求解,直至只有一个节点。注意为了进行中序遍历的高效查找,预先把值存 ...
分类:
其他好文 时间:
2016-04-18 20:43:36
阅读次数:
99
在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序遍历结果为:DGBAECHF,求后序遍历结果。 我们知道: 前序遍历方式为:根节点->左子树->右子树 中序遍历方式为:左子树->根节点->右子树 后序遍历方式为:左子树->右子树->根节点 从这里可以看出,前序遍历的第一个值就是根节点,然后再中 ...
分类:
编程语言 时间:
2016-04-18 17:04:19
阅读次数:
365
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序序列和中序序列的结果都不含重复的数字,例如输入前序序列{1,2,4,7,3,5,6,8}和中序序列{4,7,2,1,5,3,8,6},则重建树并输出它的头结点,二叉树的头结点定义如下: struct BinaryTreeNode ...
分类:
其他好文 时间:
2016-04-17 22:23:31
阅读次数:
138
问题 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树。 思路 首先找到先序遍历的第一个节点,就是根节点,然后在中序遍历 ...
分类:
其他好文 时间:
2016-04-17 11:43:12
阅读次数:
124
题目描述:已知二叉树和一个确定的值,求二叉树中的路径上节点的和满足给定的值,输出这些路径。 题目和算法解析:我们知道二叉树中的路径是指从根节点到叶子节点的。一定是从根节点出发的。所以我们需要有一种数据结构能够记录我们走过的路径。想到了栈。算法需要从根节点开始采用 前序遍历的思想逐个去校验是否符合条件 ...
分类:
其他好文 时间:
2016-04-11 20:41:59
阅读次数:
139
前序遍历——根 左 右 中序遍历——左 根 右 后序遍历——左 右 根 ...
分类:
编程语言 时间:
2016-04-11 16:57:07
阅读次数:
172
选择排序图像化显示: 选择排序的基本思想:从待排序序列中找到最小(大)的元素,存放到序列起始位置,缩小排序范围,再找当前序列最小(大)的元素,放在起始位置之后,直到所有数据都被排完。时间复杂度=O(n^2)空间复杂度=O(1)最好情况:已经有序交换次数O(1)最坏情况:..
分类:
编程语言 时间:
2016-04-11 10:28:25
阅读次数:
388