定义:
好像没什么用




• 节点的度:节点子树的个数
• 树的度:最大的节点度数
• 叶子节点:度为 0 的节点
• 分支节点:度不为 0 的节点
• 节点的层次:根为第 1 层,依次加 1
• 树的高度(深度):最大层次数
二叉树是n(n≥0)个结点的有限集。它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成


编号:

进行顺序存储:
这种编号具有以下性质:


需求:访问节点本身、左子树、右子树

中序遍历的代码:
void InOrder(BinTree T){
if(T){
InOrder(T->lchild);
printf("%c", T->data);
InOrder(T->rchild);
}
}
是否能从遍历结果逆推二叉树形态?

森林是树的集合
孩子->左,兄弟->右

左->孩子,右->兄弟

扩充二叉树

内路径长度
外路径长度
加权路径长度
由n个只有根节点的树的集合(森林)构成霍夫曼树的过程
步骤:
短码不是长码的前缀的编码称为“前缀码”
霍夫曼编码的特点
编码方式:
霍夫曼树中,左子树给一个0,右子树给一个1,总根节点到任一个节点总的编码就是霍夫曼编码
画出该树等效的二叉树,并写出其先序、中序和后续遍历结果。


| 先序 | A | B | E | K | L | F | C | G | M | H | D | I | J |
| 中序 | K | L | E | F | B | M | G | H | C | I | J | D | A |
| 后序 | L | K | F | E | M | H | G | J | I | D | C | B | A |
一棵二叉树的中序、后序序列如下,请画出该二叉树。
中序:DCBGEAHFIJK后序:DCEGBFHKJIA

给定25个字符组成的电文为DDDDAAABEEAAFCDAABCCCBADD,请基于Huffman树为字符A、B、C、D、E、F设计Huffman编码。
各个字符出现的次数为:
A:8次,B:3次,C:4次,D:7次,E:2次,F:1次
设计对应的Huffman树:

对应的编码为:
A:11
B:001
C:01
D:10
E:0000
F:0001