在书中算法导论 - 创造性的方法,问题4.24:证明的最大转数为两棵树成为等于
设T1和T2是两个任意的树,每个都具有n个节点。证明对T1应用至多2n的旋转是足够的,以便它等于T2。
对于二叉搜索树,我想通了一个算法:
查找等于T2的根元素,让我们把它定位根。
使用AVL旋转策略,旋转target-root使其成为T1的新根。
在此过程中,可能会执行多次旋转。对于T1和T2的左子树,按照上面的方式递归处理它们。
对于T1和T2的右子树,按递归方式处理它们。
该算法在最坏的情况下以O(N^2)运行。
我不太明白“任意树”这个词,我不知道如何让T1等于T2。
任何人都可以帮助解决这个问题吗?
我不知道有没有简单的答案。我认为这篇论文是一个很好的起点。 Daniel Sleator,Robert Tarjan和William Thurston指出,任何两棵n节点树(n≥11)之间的旋转距离至多为2n-6,并且无限多对树相距甚远。 http://www.ams.org/journals/jams/1988-01-03/S0894-0347-1988-0928904-4/home.html – amald
@amald谢谢,我将阅读文件 – Guocheng