这是具有相同元素的不同BST的组合,其排列外观根据树形结构中添加节点的顺序而有所不同:
1 1 1 1 1
\ \ \ \ \
2 2 3 4 4
\ \ / \ / /
3 4 2 4 3 2
\ / / \
4 3 2 3
2 2 3 3 4 4 4
/ \ / \ / \ / \ / / /
1 3 1 4 2 4 1 4 3 2 3
\ / / \ / / \ /
4 3 1 2 2 1 3 1
/ \
1 2
4 4
/ /
1 1
\ \
2 3
\ /
3 2
它们的有序遍历是相同的,那么我们如何区分它们呢?尤其是当添加节点的顺序不止一个且它们都生成相同的结构时,例如2,1,4,5
,2,4,1,3
,2,4,3,1
。
答案 0 :(得分:1)
您提到您的所有示例都具有相同的顺序遍历(1234),这意味着顺序不足以得出树结构的信息。但是,两个post-order and pre-order序列都足以推导二叉搜索树的树结构。
例如,给定预购2-1-3-4,唯一满足此预购要求的二进制搜索树就是您的第2行col 1示例。将其与预订2-1-4-3进行比较,这将是您的第2行第2列示例。
对于您的所有示例,以下是它们的预购符号
[1234] [1243] [1324] [1432] [1423]
[2134] [2143] [3214] [3124] [4321] [4213] [4312]
[4123] [4132]
如您所见,它们都是不同的。您可以对它们的后遍历重复相同的过程,并且应该得到所有不同的结果。