[!quote] 叶子节点,兄弟节点,孩子节点,树的高度
- 叶子节点:没有孩子的节点
- 兄弟节点:由同一个父节点衍生出来的节点
- 孩子节点:某个节点的子节点
- 树的高度:树有几层
❤️ 二叉树
[!quote] 二叉树 二叉树的每个节点最多有两个孩子节点【
左孩子节点,右孩子节点】
[!hint] 链表实现
[!hint] 数组实现
💛 满二叉树
[!quote] 满二叉树 满二叉树的每个高度必需铺满
💛 完全二叉树
[!quote] 完全二叉树 完全二叉树 就是除了最后一层以外,其它每一层都是满的,并且最后一层的节点都连续集中在最左边的二叉树
💙 二叉堆
[!quote] 二叉堆 二叉堆 就是满足“堆序性”的完全二叉树,而二叉堆又分为 :
- 最大堆(父节点比它的两个子节点都大)
- 最小堆(父节点比它的两个子节点都小)
- 最大堆
50
/ \
30 40
/ \ / \
10 5 20 25- 最小堆
5
/ \
10 8
/ \ /
15 20 30💛 二叉排序树(二叉查找树)
重要性质:非叶子节点数量永远<=叶子节点数量
链表存储的二叉堆,查找节点的时间复杂度是 O(n),插入和删除节点的时间复杂度是 O(logn)。
数组存储的二叉堆,查找节点的时间复杂度是 O(1),插入和删除节点的时间复杂度是 O(logn)。



