Algorithm 如何识别某些二叉搜索树遍历属于后序还是按序?
如果二叉搜索树的前序是[p,a,R,S],如何识别[R,S,a,p]是按序还是按后序?Algorithm 如何识别某些二叉搜索树遍历属于后序还是按序?,algorithm,data-structures,binary-search-tree,tree-traversal,Algorithm,Data Structures,Binary Search Tree,Tree Traversal,如果二叉搜索树的前序是[p,a,R,S],如何识别[R,S,a,p]是按序还是按后序? 如果是post order,如何找出是(左、右、根)还是(右、左、根)?二元搜索树的顺序始终是按顺序排序的。因为[R,S,A,P]不是按排序顺序排列的,所以它应该是后序。如果前序遍历是[P,A,R,S],那么P必须是根。因为它是一个二叉搜索树,所以a必须是左子树,R和s必须在右子树中。这将为您提供两种可能的树: P P A R A
如果是post order,如何找出是(左、右、根)还是(右、左、根)?二元搜索树的顺序始终是按顺序排序的。因为[R,S,A,P]不是按排序顺序排列的,所以它应该是后序。
如果前序遍历是[P,A,R,S],那么P必须是根。因为它是一个二叉搜索树,所以a必须是左子树,R和s必须在右子树中。这将为您提供两种可能的树:
P P
A R A S
S R
第二棵树的反向后序遍历将以编程方式提供序列[R,S,A,p]。?从输入数据构造树,然后以
in-
/post-
的顺序遍历它,然后得到结果怎么样?它的O(n)
你能想出一个代码吗?我们可以帮你如何识别[R,S,A,P]按顺序或后顺序所属?
-使用前顺序遍历和二元搜索树属性构建树。然后对其进行顺序和后顺序,并与[R,S,A,P]
匹配,这就是顺序。现在如何找到是(左,右,根)还是(右,左,根)?@S.Safari这现在是您可以搜索的标准问题。