题目来源:树中的最长路解题思路:枚举每一个点作为转折点t,求出以t为根节点的子树中的‘最长路’以及与‘最长路’不重合的‘次长路’,用这两条路的长度之和去更新答案,最终的答案就是这棵树的最长路长度。只要以类似后序遍历的方式依次访问每个结点,从下往上依次计算每个结点的first值和second值,我就能...
分类:
其他好文 时间:
2014-11-08 22:05:53
阅读次数:
335
题目来源:后序遍历解题思路:开始时我只知道先通过先序、中序求出二叉树,然后再后序遍历二叉树,这当然也是一种解题思路,但是会做一些无用功,比如:计算二叉树。其实,可以直接通过先序序列和中序序列直接求出后序序列的。思路如下:1、取先序序列的第一个节点为根节点;2、在中序序列中找到根节点的下标,将中序序列...
分类:
其他好文 时间:
2014-11-06 10:29:52
阅读次数:
166
先序遍历:访问根,遍历左子树,遍历右子树,简称:DLR。
中序遍历:遍历左子树,访问根,遍历右子树,简称:LDR。
后序遍历:遍历左子树,遍历右子树,访问根,简称:LRD。
数组搞的:
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-11-05 21:38:44
阅读次数:
294
题目描述Description 我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序,你却不能确定其中序遍历序列,考虑如下图中的几棵...
分类:
其他好文 时间:
2014-11-05 19:18:10
阅读次数:
278
给你一颗真二叉树(节点要么没有孩子,要么有两个孩子)的前序和后序遍历输出中序遍历序列。
/*************************************************************************
> File Name: Euler.cpp
> Author: acvcla
> QQ:
> Mail: acvcl...
分类:
其他好文 时间:
2014-11-05 17:14:01
阅读次数:
171
给定中序遍历inorder和后序遍历postorder, 请构造出二叉树.算法思路: 设后序遍历为po, 中序遍历为io.首先取出po的最后一个节点作为根节点, 同时将这个节点入stn栈;随后比较io的最后一个节点和stn栈顶节点:如果不同则将此节点添加到栈顶节点的右侧并入stn栈, 同时从po中删...
分类:
其他好文 时间:
2014-11-04 16:39:28
阅读次数:
162
对二叉树的遍历: 先序遍历:【先访问根节点】 先访问根节点, 再先序访问左子树, 再先序访问右子树; ————递归关系 中序遍历:【中间访问根节点】 中序遍历左子树, 再访问根节点, 再中序遍历右子树; ————递归关系 后序遍历...
分类:
其他好文 时间:
2014-11-02 22:18:20
阅读次数:
197
这题 是给你一个二叉树的 先序和中序遍历 让你推导出 后序遍历蛮有意思的 ...当然 做这题的前提是要 先明白 二叉树的 先序 与 中序 后序 遍历分别是如何实现的我这边 懒得提了 =_=我直接贴上 代码吧 因为这真的是 数据结构的基本要求你还可以去写下 中序与后序遍历 推导出 先序遍历的代码我也一...
分类:
其他好文 时间:
2014-10-29 21:06:25
阅读次数:
185
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。
无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:...
分类:
编程语言 时间:
2014-10-29 17:16:11
阅读次数:
294
二叉树的遍历有三种方式,如下:
(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。
(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。
(3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。
例1:如上图所示的二叉树,若按前序遍历,则其输出序列为...
分类:
其他好文 时间:
2014-10-28 21:46:56
阅读次数:
324