耦合电感 Coilcraft LPD5030-223MRC 和 TONEVEE CDD5030-220M参数及电气性能有何区别?
2026/9/30 10:23:22
平衡二叉树(AVL 树)通过维护每个节点的平衡因子(即左右子树高度之差)来确保整棵树的高度始终接近 $ \log_2 n $,从而保障查找、插入和删除操作的时间复杂度稳定在 $ O(\log n) $。当插入或删除节点导致某个节点的平衡因子绝对值超过 1 时,就需要进行旋转调整以恢复平衡。
根据失衡情况的不同,主要分为四种调整类型(图中展示了其中三种典型场景):
defright_rotate(A):B=A.left A.left=B.right B.right=A# 更新高度A.height=max(height(A.left),height(A.right))+1B.height=max(height(B.left),height(B.right))+1returnB# 新的根defleft_rotate(A):B=A.right A.right=B.left B.left=A# 更新高度A.height=max(height(A.left),height(A.right))+1B.height=max(height(B.left),height(B.right))+1returnB# 新的根defleft_right_rotate(A):A.left=left_rotate(A.left)returnright_rotate(A)注:还有一种对称情况是RL 型(先右旋再左旋),用于处理右子树的左子树插入导致的失衡。
AVL 树作为最早的自平衡二叉搜索树之一,核心优势在于:
虽然由于频繁旋转带来一定开销,现代应用中红黑树更常见,但 AVL 树仍是理解自平衡机制的重要基础。
RL型失衡是AVL树中四种不平衡情况之一,属于“折线型”插入导致的失衡。
RL型(Right-Left Case)发生在:
在节点 A 的右子树的左子树中插入一个新节点,导致 A 的平衡因子从 -1 变为 -2。
具体结构如下:
这种插入方式使得 A 的右子树高度显著增加,但路径为“先右再左”,形成折线形态,称为 RL 型。
此时:
对 B 进行单向右旋(Right Rotation)
对 A 进行单向左旋(Left Rotation)
最终结果:以 C 为根的新子树左右高度一致,所有节点恢复平衡。
defright_left_rotate(A):# 第一步:对右孩子 B 进行右旋(处理 RL → RR)A.right=right_rotate(A.right)# 第二步:对当前节点 A 进行左旋returnleft_rotate(A)A (-2) A (-2) \ \ B (+1) 插入后 → B / / C C' / \ / \ [新节点] ... → 先对 B 右旋 → 得到: A (-2) \ C / \ B ... / ... → 再对 A 左旋 → 得到: C (0) / \ A B / / ...