【问题标题】:Binary search tree rotation二叉搜索树旋转
【发布时间】:2016-03-10 00:02:23
【问题描述】:

我想创建一种算法来对二叉搜索树进行排序以使它们平衡。但如果我不了解自己每个步骤的工作原理,我就做不到!

所以我有一个二叉搜索树,我想旋转它以使其平衡。我已经知道并知道如图 2 所示的答案,但不确定达到该点所需的步骤

图 1:

图2:

任何指针都会很棒。

我也在使用http://visualgo.net/bst.html

【问题讨论】:

  • 我认为这个问题太宽泛了。至少有几十本书解释了这一点,特别是谷歌“CLRS 算法简介”。研究其中一个,如果您有更具体的问题,请稍后再问。

标签: algorithm binary-search-tree


【解决方案1】:

这里需要的东西叫做tree rotation

您从第 1 步到第 2 步所做的是节点 16 的左旋转,如下所示:

节点 16 不平衡且 size(left child)

  1. 我们需要将16节点转移到左孩子,
  2. 从右子节点获取一个新节点(最小的)作为新节点(18因为是最小的)
  3. 重新平衡右孩子

【讨论】:

  • 谢谢伙计!复制粘贴 FTW。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多