名称 | 概念 | 相关性质 |
---|---|---|
二叉树 | 树的节点的子节点不超过两个 | 不存在度大于2的节点 |
满二叉树 | 每一层的节点数都达到最大值 | 节点的度要么为0要么为2 |
完全二叉树 | 除最后一层外,其他层满足满二叉树的性质,且最后一层的节点连续集中在左边 | 满二叉树是完全二叉树的特例 |
平衡二叉树 | 左右子树高度差不超过1 | 其左右子树也是平衡二叉树 |
二叉排序树 | 左子树节点值小于跟节点值,右子树值大于根节点值 | 对二叉搜索树进行中序遍历就可得到有序数组 |
线索二叉树 | 利用二叉树的n+1个空指针域来存放其前驱和后继信息 | 叶子节点的左右线索标志皆为0 |
度
树中节点的度是指它包含的子节点数。一棵树中所有的度数和就是树所含边的数量,也就是节点数-1.
遍历
先序遍历:先访问根节点,再访问左节点,最后访问右节点。
中序遍历:先访问左节点,再访问根节点,最后访问右节点。
后序遍历:先访问左节点,在访问右节点,最后访问根节点。
层序遍历:BFS,一层一层从左向右遍历。
任何一棵二叉树的叶子节点在先序、中序、后序遍历中相对次序都不会发生变化。
哈夫曼树
利用叶子节点的权值构造,权值越小的叶子节点越靠下,即深度越深,权值越大的叶子节点越靠上,深度越小。每次从给定的带权值叶子节点中选取两个权值最小的点,合并得到一个父节点,父节点代替两个子节点继续进行筛选,直到所有叶子节点都进行了合并。是带权路径和最小的树。每个叶子节点的权值*它所在的深度(边的高度),并求和即可。