目录
4.3 三种遍历实例(遍历代码,大家可以看王道书等其他书代码都类似)
一.树的基本概念
树的定义 | 树的特点 |
|
|
树的结构图 | 树的高度,深度,层 |
| |
树的基本术语 | 树的性质 |
节点的度 :结点拥有的子树的数目 叶子 :度为零的结点 分支结点 :度不为零的结点 树的度 :树中结点的最大的度 层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1 树的高度:树中结点的最大层次 无序树:树中结点的各子树之间的次序是不重要的,可以交换位置 有序树:树中结点的各子树之间的次序是重要的, 不可以交换位置 森林:0个或多个不相交的树组成 |
|
二.树的存储结构
双亲表示法 | 孩子表示法 | 孩子兄弟表示法 |
|
|
【孩子节点】【数 据】【兄弟节点】 |
三. 树、森林、二叉树的转换
树和森林的遍历对应关系
树 | 森林 | 二叉树 |
先根遍历 | 先序遍历 | 先序遍历 |
后根遍历 | 中序遍历 | 中序遍历 |
四.二叉树
4.1基本概念
二叉树的定义 |
|
二叉树的性质 |
|
特殊二叉树
|
|
二叉查找树「二叉排序树」「二叉搜索树」 | 平衡二叉树 |
|
|
4.2 二叉树存储结构
顺序存储结构 | 链式存储结构 | |
定义 |
|
|
特点 |
|
|
4.3 三种遍历实例
(遍历代码,大家可以看王道书等其他书代码都类似)
4.4 常考结论
1、不能唯一确定一颗二叉树的是:先序序列和后序序列 |
2、先序遍历第一个节点为根节点;后序遍历最后一个节点为根节点 |
3、前序序列和中序序列的关系相当于以前序序列为入栈次序,以中序序列为出栈顺序 |
4、前序序列与后序序列刚好相反的时候,二叉树的高度 = 节点数(即每层只有一个节点) |
5、后序遍历可以找到m到n直接的路径(其中m是n的祖先) |
6、根据两个序列确定二叉树的方法 |
4.5 线索二叉树
基本概念 和参考点 |
|
|
结点结构 |
| ||||
中序线索化 的过程 |
前序和后序线索化只需要把遍历方法改成前序和后序即可 | ||||
4.6二叉树应用
(哈夫曼树详见有关哈夫曼树的基础知识和应用_哈夫曼树叶子结点与总结点的关系-CSDN博客)
4.7并查集
定义 | 例题 |
|
|
Initial(S) | Union(S,Root1,Root2) | Find(S,x) |
|
合并 |
|
void Initial(int S[]) { for (int i = 0; i< size; i++) S[i] = -1; } | void Union(int S[], int Root1, int Root2) { S[Root2] = Root1; } | int Find(int S[], int x) { while (S[x] >= 0) x = S[x]; return x; } |
常考知识点
1、二叉树相关结论 【考试多用特殊值法】 |
| ||||||
2、图的相关概念 | 常见术语 | ||||||
3、各种排序的比较 | 总结 | ||||||
4、查找常考结论 | 顺序查找、折半查找、分块查找 |
----ssss