参考博客: https://blog.csdn.net/qq_40772692/article/details/79343914 一、二叉树的常用性质 <1>.在二叉树的第i层上最多有2 i-1 个节点 。(i>=1) <2>.二叉树中如果深度为k(有k层),那么最多有2k-1个节点。(k>=1) ...
分类:
其他好文 时间:
2018-10-23 10:57:13
阅读次数:
197
总结下二叉树的已知两种遍历方式求第三种遍历顺序的方法,已知先序和中序遍历或者后序与中序遍历后二叉树是唯一确定的,下面介绍怎么求出第三种遍历顺序。 先序遍历顺序为:根结点——左子结点——右子结点,中序遍历为:左子结点——根结点——右子结点,我们注意到,先序遍历的第一个元素就是二叉树根结点,我们在中序遍 ...
分类:
其他好文 时间:
2018-10-20 20:22:00
阅读次数:
120
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 思路 二叉树后序遍历数组的最后一个数为根结点, ...
分类:
编程语言 时间:
2018-10-19 22:42:40
阅读次数:
168
一、前序遍历: 递归方式: 非递归方式:时间复杂度O(n),空间复杂度O(n) 二、中序遍历: 递归方式: 非递归方式: 三、后序遍历: 递归 非递归: ...
分类:
其他好文 时间:
2018-10-18 13:12:35
阅读次数:
147
当我们学习树这种数据结构时会牵扯到很多的东西,基本上学习数据结构的一大重心都围绕着树这一个最基础的结构 但是问题来了!平时我们都是直接自己在脑子里或者图纸上先描述好这个树,然后我们在对控制台输入我们想要的! 那么我们如何能够确定自己创建的一颗树来是正确的呢? 有很多种办法可以(这里说两种) 我们可以 ...
分类:
其他好文 时间:
2018-10-17 14:45:47
阅读次数:
137
10.4 1 那棵树就长成下面这个样子 ~~~ / 18 12 10 7 4 2 21 5 / ~~~ 下面就借用10.4 1提供的数据,构建一棵树,然后分别对它做10.4 2所要求的递归遍历和10.4 3所要求的非递归遍历。 递归遍历的方式有三种,前序、中序、后序,实现上的差异,无非是把Trave ...
分类:
编程语言 时间:
2018-10-15 20:48:10
阅读次数:
327
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。题目地址https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd?tpId=1... ...
分类:
其他好文 时间:
2018-10-15 14:32:56
阅读次数:
175
二叉树的遍历: 前序遍历(递归): LeetCode 144 非递归: 中序遍历(递归):LeetCode 94 非递归: 后序遍历(递归): LeetCode 145 非递归:(大致解析:如果该结点的左右子树都为空或者左右子树中的一个为上一次访问的结点即该结点的右结点已经访问过了,则输出。否则将该 ...
分类:
编程语言 时间:
2018-10-15 00:41:32
阅读次数:
190
一、前序遍历 分析: 1、前序遍历是中左右,因此利用栈,记录栈顶根结点的同时,先压右子树,后压左子树,从而先遍历左子树。 2、每次弹出的栈顶结点符合前序遍历的顺序,因此可直接记录。 3、注意:由于压入栈的是树的结点,所以栈内数据类型为Node*。 二、中序遍历 分析: 1、中序遍历是左中右,对于一棵 ...
分类:
其他好文 时间:
2018-10-13 00:04:18
阅读次数:
149
已知如下信息,补充函数,返回二叉树的后序遍历。 代码如下: vector<int> get_postorder(Node *root){ vector<int> v; if(root == NULL) return v; v = get_postorder(root -> left); vector ...
分类:
其他好文 时间:
2018-10-12 23:49:27
阅读次数:
212