【发布时间】:2023-02-16 05:41:08
【问题描述】:
首先,您可以创建一个函数来计算每个节点的平衡因子 (updateBalanceFactors),但这会增加 addNode 和 deleteNode 函数的复杂性,所以我想避免它。 当我向树中添加节点时,我找到了无需 updateBalaceFactors 函数即可更新平衡因子的方法。轮换之后,我再次找到了一种正确更新平衡因子的方法。我还想提一下,我的结构节点不包含高度变量,所以我没有使用经典的 lheight - rheight 从一开始就计算平衡因子。我的结构包含一个 balancefactor 变量。无论如何,问题不在我的 addNode 函数中。这里的平衡因素正在完美更新。
我的问题出在删除功能上。有人能告诉我删除后每个节点的平衡因子如何受到影响以及删除后发生的旋转如何影响节点的平衡因子?
【问题讨论】: