Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 数据结构:返回形状相同的BST和另一个BST';s值_Algorithm_Data Structures_Binary Tree_Binary Search Tree - Fatal编程技术网

Algorithm 数据结构:返回形状相同的BST和另一个BST';s值

Algorithm 数据结构:返回形状相同的BST和另一个BST';s值,algorithm,data-structures,binary-tree,binary-search-tree,Algorithm,Data Structures,Binary Tree,Binary Search Tree,嘿,我有一个问题,我需要描述一个算法,得到2个二叉搜索树,T1和T2。树包含每个节点的不同值。 该算法应该返回一个与T2形状相同的二叉搜索树,但其值为T1,时间复杂度为O(n),其中n是元素数(两棵树相同) 我们称之为“同等拓扑”(我认为这就是它的名称/一个很好的名称) 例如: T1(定义值) T2(定义形状): 应返回: 到目前为止,我尝试的是考虑中值/平均值,但每次都不起作用,或者考虑建立一个AVL树,然后旋转它,直到找到解决方案,但我不知道这是否可行,或者是时间复杂度O(n)。任何帮

嘿,我有一个问题,我需要描述一个算法,得到2个二叉搜索树,T1和T2。树包含每个节点的不同值。 该算法应该返回一个与T2形状相同的二叉搜索树,但其值为T1,时间复杂度为
O(n)
,其中
n
是元素数(两棵树相同)

我们称之为“同等拓扑”(我认为这就是它的名称/一个很好的名称)

例如:

T1(定义值)

T2(定义形状):

应返回:


到目前为止,我尝试的是考虑中值/平均值,但每次都不起作用,或者考虑建立一个AVL树,然后旋转它,直到找到解决方案,但我不知道这是否可行,或者是时间复杂度
O(n)
。任何帮助都将不胜感激!谢谢大家!

遍历T1并将值写入数组(按排序顺序)。然后创建T2的副本(如有必要)并遍历它,逐个写入数组中的值。这将使用2次遍历,因此为Θ(n)。按左子树-顶点-右子树的顺序遍历两棵树。

遍历T1并将值写入数组(按排序顺序)。然后创建T2的副本(如有必要)并遍历它,逐个写入数组中的值。这将使用2次遍历,因此为Θ(n)。按左子树-顶点-右子树的顺序遍历这两棵树。

先生,你真是个天才!先生,你真是个天才!