我遇到了与二叉树有关的问题。
他们已经给出了
从空的二进制搜索树开始,插入以下哪个整数键序列可以生成上面的二叉树?
有人可以请解释这背后的逻辑。
答案是: 5,3,4,9,1,7 ..有人可以解释一下这是怎么回事。
答案 0 :(得分:0)
在二叉搜索树中插入节点时,将其与从根开始的每个节点进行比较。如果它大于当前节点,请向右下方分支并将其插入那里。否则,沿着左侧分支向下插入。如果没有分支,那么您找到了插入节点的位置。
从空树开始遵循此规则并尝试使用给定的值,直到获得他们为您提供的树。
答案 1 :(得分:0)
您只显示一个序列。别无选择?
有几个序列可以生成二叉搜索树。
给定任何二叉搜索树,产生它的插入序列是其前序遍历。
原因是在插入期间,已经插入的节点永远不会改变位置。您插入的每个新节点都将作为不完整节点的子节点放置。
插入对称前序遍历,即访问根,然后按预先排序访问右子树,最后按预先访问左子树也生成相同的树。
通常,插入前序遍历的任何变体都会生成原始树。
此外,级别遍历的插入,即首先是根,然后是第二级的节点,依此类推,产生原始的二进制搜索树。请注意,您可以置换同一级别的节点,结果将相同。