我该如何平衡一棵退化的树?C++数据结构

How would I balance a degenerate tree? C++ Data Structure

本文关键字:数据结构 一棵 C++ 何平衡 平衡      更新时间:2023-10-16

我目前正在使用C++学习数据结构。我理解在插入新节点时如何平衡二进制搜索树。

然而,如果您已经有一个退化树(单个链表(,并且希望在不创建新树的情况下平衡它,该怎么办?总之,如何使用现有节点将退化树重新组装为完整的树?(使用旋转方法(

例如,我的节点保存(9个节点(的数据:1、3、6、9、12、15、18、21、24

我需要先推一下。我甚至不知道从哪里开始。。我感谢你的帮助。

退化树只是一个排序的链表。找到列表的中间元素,删除列表中间之前的开头,并将其附加到中间元素的左侧。现在,中间的元素作为根,每侧有两个退化树(链表(。对每一侧递归地重复此过程。
相关文章: