algorithm - 如何识别一些二叉搜索树遍历是后序还是中序?

标签 algorithm data-structures binary-search-tree tree-traversal

如果一棵二叉搜索树的前序是[P,A,R,S],如何识别[R,S,A,P]是中序还是后序? 如果是后序怎么判断是(Left, Right, Root)还是(Right, Left, Root)?

最佳答案

如果前序遍历是[P, A, R, S],那么P一定是根。既然是二叉搜索树,那么A一定是左子树,R和S一定在右子树中。这给了你两种可能的树:

      P                 P
    A   R            A     S
          S              R

第二棵树的反向后序遍历将提供序列 [R, S, A, P]。

关于algorithm - 如何识别一些二叉搜索树遍历是后序还是中序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608475/

相关文章:

java - 树的分区压缩以及如何将节点压缩到根

java - 动态订单统计: get k-th element in constant time?

string - 查找具有特定属性的数字子串

c++ - 为什么/什么时候我们应该更喜欢使用 std::swap;在 std::iter_swap(&a, &b) 上交换(a,b)?

php - 如何识别网络中的节点集群

c - C中双链表中的意外错误

algorithm - 算法中 "fractional"的定义

performance - 红黑树与安德森树

java - 二进制搜索树打印路径

java - BST 包含在 JAVA 中无法正常工作的方法