Skip to content

[!quote] 叶子节点,兄弟节点,孩子节点,树的高度

  • 叶子节点:没有孩子的节点
  • 兄弟节点:由同一个父节点衍生出来的节点
  • 孩子节点:某个节点的子节点
  • 树的高度:树有几层

400

❤️ 二叉树

[!quote] 二叉树 二叉树的每个节点最多有两个孩子节点【左孩子节点右孩子节点

[!hint] 链表实现 300

[!hint] 数组实现

💛 满二叉树

[!quote] 满二叉树 满二叉树的每个高度必需铺满 300

💛 完全二叉树

[!quote] 完全二叉树 完全二叉树 就是除了最后一层以外,其它每一层都是满的,并且最后一层的节点都连续集中在最左边的二叉树 300

💙 二叉堆

[!quote] 二叉堆 二叉堆 就是满足“堆序性”的完全二叉树,而二叉堆又分为 :

  • 最大堆(父节点比它的两个子节点都大)
  • 最小堆(父节点比它的两个子节点都小)
  • 最大堆
         50
       /    \
     30      40
    /  \    /  \
  10   5  20   25
  • 最小堆
         5
       /   \
     10     8
    / \    /
  15  20  30

💛 二叉排序树(二叉查找树)


重要性质:非叶子节点数量永远<=叶子节点数量

链表存储的二叉堆,查找节点的时间复杂度是 O(n),插入和删除节点的时间复杂度是 O(logn)。

数组存储的二叉堆,查找节点的时间复杂度是 O(1),插入和删除节点的时间复杂度是 O(logn)。

❤️ 自平衡

💛 红黑树

💛 AVL 树

💛 树堆