跳转至

树旋转

树旋转是对 二叉搜索树 的一种重构操作,不改变树的性质( 各结点值的大小关系不变,即 中序不变 ),但会改变树的形状

d

在 a 图中,由树的性质容易得到 v<f<fr<g

如果要将树重构成一颗以 f 为根的树,由上面的不等式容易知道,比 f 小的 v 应该在 f 的左子树,比 f 大的 frg 应该在 f 的右子树,又 fr<g ,所以 fr 应该作为 g 的左孩子

重构后的树如图 b 所示,这一重构操作即为 树右旋

我们约定 g 为旋转的 ,则上面的操作就是 对根 g 右旋

类似可以得到 树左旋(如图 c、d 所示)

下面是 Wikipedia 对树旋转的动图演示:

d

评论

Related Issues not found

Please contact @Stardusten to initialize the comment