June 1, 2022
data-structure

定义 #

树: 连接的 无向 无环图

Path #

路径: 节点和边的序列

路径长度; 路径里 的数量

Depth #

节点深度: 从根节点到当前节点的 路径 长度

Level #

节点层级:节点 depth + 1, (很少用)

树的层级:节点层级的最大值

Height #

节点高度: 从当前节点到 叶节点最长 路径 长度

树的高度: 根节点的高度

Width #

树在深度 d 的宽度: 树在深度 d 的节点数量

树的宽度: 所有深度的最大宽

Binary Tree #

二叉树

Balanced #

平衡树的高度为 \(O(log n)\)

Height-Balanced #

高度平衡,对任意节点而言,其子树的高度差 最多 为 1,空子树的高度为 -1

Weight-Balanced #

宽度平衡,对任意节点,其子树的 内部节点 (不包括叶节点),数量差 最多 为 1,宽度平衡的树也是高度平衡的

Complete #

完整二叉树,除最后一层外,每一层都是完整填满的,最后一层的节点尽可能 靠左

Full #

满二叉树,每一个节点都有 02 个子节点

Perfect #

完美二叉树,所有叶节点都在同一层的 满二叉树 或 每一层都填满的 完整二叉树

BST #

Binary Search Tree,二叉搜索树

新增或删除节点时,需 保持平衡 ,比较低效

特点:

  1. 每个节点都有值
  2. 每个节点的左子树的所有节点值都比当前节点的值要小
  3. 每个节点的右子树的所有节点值都比当前节点的值要大

BST 不能包含重复值

AVL #

2-3 #

B-Tree #

Red-Black #

In order #

中序遍历:

  1. 左子树 (in order)
  2. 根节点
  3. 右子树 (in order)

Pre order #

前序遍历:

  1. 根节点
  2. 左子树 (pre order)
  3. 右子树 (pre order)

Post order #

后序遍历:

  1. 左子树 (post order)
  2. 右子树 (post order)
  3. 根节点