数据结构:用另一个 BST 的值返回相同形状的 BST
Data Structure: Returning the same shaped BST with another BST's values
嘿,我有一个问题,我需要描述一个算法来获得 2 个二叉搜索树,T1 和 T2。树包含每个节点的不同值。
并且该算法应该 return 一个二叉搜索树,其形状与 T2 相同,但 T1 的值具有 O(n)
的时间复杂度,其中 n
是元素的数量(两棵树都相同)
我们怎么称呼"Equally Topological"(我想这就是它的称呼/一个好听的名字)
例如:
T1(定义值)
T2(定义形状):
应该Return:
到目前为止我尝试过的是考虑中值/平均值,但是每次都不起作用,或者考虑构建一个 AVL 树然后旋转它直到我们找到解决方案,但我没有请记住这是否可行,或者时间复杂度 O(n)
。任何帮助,将不胜感激!谢谢!
遍历 T1 并将值写入数组(按排序顺序排列)。然后创建 T2 的副本(如果需要)并遍历它,从数组中一个一个地写入值。这将使用2次遍历,所以它是Θ(n)。按左子树-顶点-右子树的顺序遍历两棵树。
嘿,我有一个问题,我需要描述一个算法来获得 2 个二叉搜索树,T1 和 T2。树包含每个节点的不同值。
并且该算法应该 return 一个二叉搜索树,其形状与 T2 相同,但 T1 的值具有 O(n)
的时间复杂度,其中 n
是元素的数量(两棵树都相同)
我们怎么称呼"Equally Topological"(我想这就是它的称呼/一个好听的名字)
例如:
T1(定义值)
T2(定义形状):
应该Return:
到目前为止我尝试过的是考虑中值/平均值,但是每次都不起作用,或者考虑构建一个 AVL 树然后旋转它直到我们找到解决方案,但我没有请记住这是否可行,或者时间复杂度 O(n)
。任何帮助,将不胜感激!谢谢!
遍历 T1 并将值写入数组(按排序顺序排列)。然后创建 T2 的副本(如果需要)并遍历它,从数组中一个一个地写入值。这将使用2次遍历,所以它是Θ(n)。按左子树-顶点-右子树的顺序遍历两棵树。