#include #include #include using namespace std; const int maxn = 100; int af[maxn], in[maxn], n; struct node{ int l, r; }tree[maxn]; int biuld(int al,... ...
分类:
其他好文 时间:
2019-03-22 20:18:15
阅读次数:
151
迭代遍历: 一般我们提到树的遍历,最常见的有先序遍历,中序遍历,后序遍历和层序遍历,它们用递归实现起来都非常的简单。而题目的要求是不能使用递归求解,于是只能考虑到用非递归的方法,这就要用到stack来辅助运算。由于先序遍历的顺序是"根-左-右", 算法为: 1. 把根节点push到栈中 2. 循环检 ...
分类:
其他好文 时间:
2019-03-20 01:23:58
阅读次数:
186
一:二叉树的遍历方式 前序遍历 <!--?xml version="1.0" encoding="UTF-8"?--> 若二叉树为空,则返回。 先访问根结点,然后前序遍历左子树,在前序遍历右子树。 中序遍历 若二叉树为空,则返回。<!--?xml version="1.0" encoding="UT ...
分类:
其他好文 时间:
2019-03-19 21:34:37
阅读次数:
164
二叉树的遍历:从根节点出发,按在某种次序访问二叉树中的所有节点,使得每个节点有且只有被访问一次 遍历方式: ①前序遍历:根-左-右 ②中序遍历:左-根-右 ③后序遍历:左-右-根 ④层序遍历: 已知前序和中序或者已知中序和后续可以唯一确定一颗二叉树 已知前序和后序不能确定一颗二叉树 位示图:利用1位 ...
分类:
其他好文 时间:
2019-03-14 11:59:36
阅读次数:
184
L2-006 树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中 ...
分类:
其他好文 时间:
2019-03-09 01:29:50
阅读次数:
213
对于二叉树的遍历通常习惯采用递归的方法,当树的规模很大的时候,递归的深度就会很深,这就导致了对空间的浪费。在此,我们先不讨论二叉树遍历的本质,以及递归的详细过程。我先先来研究一下,二叉树本身: 图1 二叉树 图1所示为一个二叉树的结构,我们注意结点的特征。结点包含了三个数据:存储值,指向左子节点的左 ...
分类:
其他好文 时间:
2019-03-02 12:28:49
阅读次数:
186
Invert a binary tree. 思路1 递归: 把左子树和右子树进行交换。交换完之后,再去递归翻转左子树和右子树 思路2 遍历 换父节点的时候,把子节点存下来,然后换完父节点了,就去换子点的。 ...
分类:
其他好文 时间:
2019-02-14 23:58:41
阅读次数:
324
Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally ident ...
分类:
其他好文 时间:
2019-02-14 22:19:34
阅读次数:
204
题目描述 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi。现在要选出尽量多的点。 对于任意一棵子树,都要满足: 如果选了根节点的话,在这棵子树内选的其他的点都要比根节点的值大; 如果在左子树选了一个点,在右子树中选的其他点要比它小。 输入描述: 第一行一个整数n。 第二行n个整数wi,表示 ...
分类:
其他好文 时间:
2019-02-08 23:23:39
阅读次数:
172
算法题目中有很多关于二叉树遍历的题目,以下就简要说一下可能的情况: 1、已知先序和中序,求后序。比如先序1 2 3 4 6 7 5,中序2 1 6 4 7 3 5。主要步骤有:1、求当前父节点,该节点是当前先序序列的第一个。2、在中序节点中找出该父节点的位置(i,从0开始计数)。3、获得左右孩纸节点 ...
分类:
其他好文 时间:
2019-02-07 13:32:52
阅读次数:
173