二叉树的遍历,注意递归和非递归两种思路。 94. Binary Tree Inorder Traversal 二叉树中序遍历 https://leetcode.com/problems/binary-tree-inorder-traversal/ 题目:给定二叉树,返回节点值的中序遍历。 思路: 1 ...
分类:
其他好文 时间:
2019-09-24 10:25:12
阅读次数:
85
"主定理" 参考博客如标题 自己的傻b理解 对于我这种应付考试的人,可以直接代入几个特殊值... 只需要知道: 符号$O$,读音殴,表示上界,小于等于,贴紧未知。 找好特殊值 对于简单的(如:O(n), 又如下面的例题3),自己推就行 博客原文如下 先介绍几个符号的含义。 符号$Θ$,读音西塔,既是 ...
分类:
其他好文 时间:
2019-09-22 19:26:32
阅读次数:
85
前序非递归遍历(借用栈结构): ①将根节点入栈; ②判栈空,获取栈顶元素输出; ③判断右子树是否为空,再判断左子树是否为空,在回至②执行。 void PreOrder(BinTree bt) { stack<BinTree> astack; BinTreeNode * p; astack.push( ...
分类:
其他好文 时间:
2019-09-18 20:50:44
阅读次数:
127
二叉树的遍历方式常见的三种是:先序遍历(ABC)、中序遍历(BAC)、后序遍历(BCA) 先序遍历: 若二叉树为空,则空操作;否则: 中序遍历: 若二叉树为空,则空操作;否则: 后序遍历: 若二叉树为空,则空操作;否则: 在学习到 根据遍历序列确定二叉树 时,知道了:可以通过二叉树的先中或者中后遍历 ...
分类:
其他好文 时间:
2019-09-16 21:47:16
阅读次数:
93
线索二叉树利用二叉树空余的指针域,来实现二叉树的链式化。然后,就可以通过前驱,后继像双向链表一样根据某种遍历次序对树的结点进行访问。 数据结构: 建立线索二叉树: 不同的遍历顺序,会得到不同的线索二叉树。 一般使第线索链表的头和尾指向NULL(也可以加入一个头指针) 以中序遍历为例:(对左子树处理, ...
分类:
其他好文 时间:
2019-09-15 11:00:53
阅读次数:
207
[TOC] 一、二叉树的遍历 1.1 先序遍历 遍历过程为: 1. 访问根结点 2. 先序遍历其左子树; 3. 先序遍历其右子树。 先序遍历:A (B D F E)(C G H I) 1.2 中序遍历 遍历过程为: 1. 中序遍历其左子树; 2. 访问根节点; 3. 中序遍历其右子树。 中序遍历:( ...
分类:
其他好文 时间:
2019-09-13 11:27:05
阅读次数:
171
二叉树的遍历和线索二叉树 递归遍历 先序遍历 中序遍历 后序遍历 非递归遍历 先序遍历非递归算法 中序遍历非递归算法 后序遍历非递归算法 后序非递归遍历二叉树的顺序是先访问左子树,再访问右子树,最后访问根结点。 当用堆栈来存储结点时,必须分清楚返回根结点时是从左子树返回还是从右子树返回的。 所以,使 ...
分类:
其他好文 时间:
2019-09-12 00:02:17
阅读次数:
100
"题目链接:" 涉及知识: 二叉树的遍历 分析: "上一篇" 中介绍了如何通过二叉树的前序和中序遍历构造二叉树。 我们知道前序的遍历顺序是:根,左,右;中序的遍历顺序是左,根,右;后序的遍历顺序是左,右,根; 如果我们将后序遍历倒过来看便是根,右,左;会发现和前序遍历是非常相似的。前序遍历依次是根节 ...
分类:
其他好文 时间:
2019-09-06 12:43:16
阅读次数:
116
"题目链接:" 涉及知识: 二叉树的遍历 分析: 二叉树的前序遍历:根节点 — 左子树 — 右子树 二叉树的中序遍历:左子树 — 根节点 — 右子树 由此可知:前序遍历中访问到的第一个元素便是根节点,通过该点便可以将中序遍历分成左右两部分,左部分的元素用来生成该二叉树的左子树,右部分用来生成二叉树的 ...
分类:
其他好文 时间:
2019-09-05 23:00:04
阅读次数:
91