三种遍历方式: 测试代码: 三种遍历的输出结果: 先序遍历: 中序遍历: 后序遍历: 三种遍历的打印顺序: 先序中序后序遍历的打印特点: 对于每个结点,都有三次访问,可以用三个点代表三次操作。 先序遍历:打印发生在第一此访问。 中序遍历:打印发生在第二次访问。 后序遍历:打印发生在第三次访问。 ...
分类:
其他好文 时间:
2018-11-22 22:35:13
阅读次数:
305
[前文] 二叉树的非递归遍历有 先序遍历、中序遍历 、后续遍历 和 层序遍历。 非递归算法实现的基本思路:使用堆栈。而层序遍历的实现:使用队列。 如下图所示的二叉树: 前序遍历顺序为:ABCDE (先访问根节点,然后先序遍历其左子树,最后先序遍历其右子树) 中序遍历顺序为:CBDAE (先中序遍历其 ...
分类:
其他好文 时间:
2018-11-17 19:27:49
阅读次数:
206
[前文] 二叉树的递归遍历包括 先序遍历、中序遍历 和 后续遍历。 如下图所示的二叉树: 前序遍历顺序为:ABCDE (先访问根节点,然后先序遍历其左子树,最后先序遍历其右子树) 中序遍历顺序为:CBDAE (先中序遍历其左子树,然后访问很节点,最后中序遍历其右子树) 后续遍历顺序为:CDBEA ( ...
分类:
其他好文 时间:
2018-11-17 16:05:16
阅读次数:
157
(首先用#号填充,使二叉树的叶子结点全部为#) 输入:AB#CD##E##F#GH### 输出见下图: 计算二叉树的所有叶子节点的数量: 当一个节点的左孩子和右孩子都为空时,它是叶子节点。 使用递归如果能找到就返回1,如果节点为NULL返回0,否则返回count(t->lchild)+ count( ...
分类:
其他好文 时间:
2018-11-14 21:03:13
阅读次数:
196
so basically flag-start is size of the roots left subtree, therefore to get the start of right subtree you gotta get to the start of the first value o ...
分类:
其他好文 时间:
2018-11-13 18:06:24
阅读次数:
144
中序线索二叉树 中序线索二叉树的构造 对于每个结点o而言,重新定义其左、右儿子指针lson,rson: 左儿子指针lson: Case 1:若o存在左儿子,则lson仍指向其左儿子,o ltag=0 (此时o的中序前驱应为o的左子树中序遍历的最后一个结点,也就是o的左子树最右下那个结点) Case ...
分类:
其他好文 时间:
2018-11-10 22:37:02
阅读次数:
151
这是笔者第一次面试,,乐融集团位于朝阳区朝阳公园的乐融大厦。是下午两点的笔面试,笔者是一点半到的,然后在里面等了会,开始笔试 笔试题并不是太难,就是考的比较宽,因为笔者是校招,所以笔试题出来了数据结构的二叉树知识和先序遍历,中序遍历,后序遍历等等的知识, 还考了进制,以及计算机网络的ip分类,tcp ...
分类:
编程语言 时间:
2018-11-10 15:12:56
阅读次数:
102
这个题是给树的前序和中序,输出后序。 做法是根据前序找根,根据根在中序中找中序的左右子树,根据左右子树长度找前序的左右子树,依此递归。 做过之后感觉还是比较基础的,废话不多说,上题上代码。 Bob will get a bag as gift from Alice, but Alice don't ...
分类:
其他好文 时间:
2018-11-09 23:25:25
阅读次数:
369
题目描述: 给定一个二叉树,返回它的 后序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:28:07
阅读次数:
199
二叉树的递归遍历很好写,也很好理解。但因为是递归程序,不可避免地需要调用系统栈,耗时较长,这里我们来探究一下二叉树的非递归遍历的算法。这种方法需要使用栈这种数据结构,这里关于栈的一些操作函数可以看成伪代码吧,先给出线序、中序、后序遍历的代码即说明。 先序遍历: 中序遍历: 后序遍历:后序遍历较前两种 ...
分类:
其他好文 时间:
2018-11-03 18:18:50
阅读次数:
114