【问题标题】:With pre-order and in-order traversal reconstruct binary search tree用前序和中序遍历构造二叉搜索树
【发布时间】:2013-04-14 01:15:24
【问题描述】:

我正在研究重建二叉搜索树的函数。我正在尝试先手动完成。

假设我有: 前 10,3,5,4,15,7,8,2,9,20 在- 4,5,3,15,10,20,8,7,9,20

我想不通。我知道 10 必须是根,并且有序序列中 10 左侧的所有数字都需要在右子树中。

那会给我 4,5,3,15

15 大于 10,并且要成为二叉搜索树,左子树中的所有节点都应该小于根。

这是否意味着这两个序列形成了无效的二叉搜索树?

【问题讨论】:

标签: search tree binary-search-tree


【解决方案1】:

你是对的。根据您获得的按顺序遍历,您的树似乎不是 BST。 10 必须是根节点,正如您从前序遍历中的第一个节点中收集到的那样。有序遍历中 10 左边的所有内容都应该在左子树中,而 10 右边的所有内容都应该在右子树中。正如您所指出的,15 不可能在 10 的左侧(或者 7、8 和 9 不可能在 10 的右侧)。话虽如此,您仍然可以从这些数据中重建一棵树。它只是没有按排序顺序排列的节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2018-02-25
    • 1970-01-01
    相关资源
    最近更新 更多