第五章学习笔记
第五章学习内容:
树:
基本概念:
节点的度:一个节点的子节点数
树的度:树里面最大的的节点的度
深度:一个节点的与根节点的距离+1
二叉树:
定义:除最后一层外所有层的节点数达到最大,最后一层的节点靠左的树
性质:
第i层最多有2i-1个节点
深度为k的树最多有2k-1个节点
n0=n2+1(ni表示度为i的节点数)
完全二叉树:
定义:所有非叶节点的度都为2的树
性质:(二叉树的性质对完全二叉树适用)
节点数为n的完全二叉树深度为log2n
满二叉树:
定义:除叶节点外的所有节点度都为2的树
性质:(二叉树的性质对满二叉树适用)
二叉搜索树:
定义:对每个节点,若存在左子树,左子树的所有节点值小于其本身,若存在右子树,右子树的所有节点值大于其本身(可为空树)
性质:(二叉树的性质对二叉搜索树适用)
最优二叉树(哈夫曼树):
定义:带权路径长度达到最小的树
建立:
1.从数据集中找出两个最小的
2.将两个最小的数据作为一个节点的左右子节点,该节点值为左右节点值相加
3.将两个最小的数据从数据集中删除,将新节点的值加入数据集
4.若数据集为空,结束;若不为空,回到第一步
存储结构:
1.顺序存储:
用一个数组存储树中的节点及节点的子节点,下标表示节点编号
2.二叉链表:
用一个带有两个指针域一个数据域的结构体代表节点,指针分别指向左右节点,数据域存储节点值