【发布时间】:2015-08-12 04:45:12
【问题描述】:
给定 n 个元素 1,2,.........,n 上的二叉搜索树的后序遍历 P。您必须确定以 P 作为其后序遍历的唯一二叉搜索树。 最高效算法的时间复杂度是多少?
(a) theeta(logn)
(b) 西塔(n)
(c) theeta(nlogn)
(d) 以上都不是,因为树不能唯一确定
答案是(b),请说明解决方法。如果我们得到了后序遍历,我们是否需要应用sorting(O(nlogn)) 来按顺序计算?
【问题讨论】:
-
元素是否按数字顺序添加到树中?
-
不,我们不需要按顺序计算。我们为什么要这样做?为了想出一个算法,试着去推理为什么这棵树应该是唯一的。
-
我们只得到了后序遍历,因为我们知道按序遍历总是按升序给出排序列表,我们需要按序遍历和后序/前序遍历,所以我认为对遍历后的顺序进行排序,我们可以按顺序排列
-
@Marichyasana 这只是提供信息
-
我使用您的问题陈述的第一段搜索了互联网。有一个页面对此进行了解释,但使用的是预购。您是否要求对该页面进行解释,该页面是订购后的指南?
http://www.geeksforgeeks.org/construct-bst-from-given-preorder-traversa/
标签: algorithm binary-tree binary-search-tree