2012-12-09 116 views
0

如何创建二叉树并使用预订遍历策略绘制它?根将是第一个号码进去。C++,如何创建和绘制二叉树然后在预订中遍历它

我有一组数字:48 32 51 54 31 24 39。 48将是根。子节点在预定义遍历中如何推到二叉树上?

+2

你们是不是要建设赋予了前序遍历二叉树?或者你是否想要在二叉树上预订旅行? (对不起,这个问题不是很清楚) –

+0

使用上述编号构建的二叉树的PRe-Order Traversal会导致什么结果呢? – Ryan

回答

2

想象下面的子问题。你有一组数字:

N A1...AX B1...BY 

你知道N是对应的树的根。所有你需要知道的是什么数字形成了左边的子树。显然其余的数字构成了正确的子树。

如果您还记得二叉搜索树的属性,您会知道左子树的元素的值小于根(而右边的值的值更大)。

因此,左子树是小于(或可能等于)N的数字序列。其余的数字在右边的子树中。

递归解决

A1...AX 

B1...BY 

例如,给定:

10 1 5 2 9 3 1 6 4 11 15 12 19 20 

你得到:

  • 根:10
  • 左子树:1 5 2 9 3 1 6 4
  • 右子树:11 15 12 19 20
+0

好吧,也许这只是我,但我不能指出这一点。我给你一个插入数组:47 43 20 24 32 44 35.所以树会是:47左子树:20 24 32右子树:44,43,35? – Ryan

+0

不,44,43和35都小于47.这意味着47是根,左子树包含所有6个数字,右子树是空的。 – Shahbaz