1

我有一个父指针向量 [ 0 1 1 2 2 3 3 5 5 ....],它基本上是一棵二叉树。索引是子节点,对应的值代表其父节点在同一向量中的索引。

例如:在上面的向量中,如果数到索引 5,则元素为 2,这意味着它的父元素位于索引 2。再次在索引 2 处,元素为 1,这意味着父元素位于索引 1。在索引 1是元素是 0 是根节点。

如何从中创建二叉搜索树?

或者,

我正在以二叉树格式生成数据,其中我知道父级和相应的子级,如何将它们存储在二叉搜索树中?

子项的索引将始终大于父项,如上面的向量所示。一个例子是:我取节点 1,把它分成两个节点,2 和 3。然后取节点 2,把它分成 4 和 5。然后我取节点 4,把它分成 6 和 7,以此类推。我想在二叉搜索树中保留父子关系。

此致

瓦贾哈特

4

1 回答 1

0

根据向量中的规范生成具有空元素的二叉树。新元素到达后​​,找个地方放:根据二叉搜索树规则遍历树——左子树的所有子树都小于一个元素,右子树的所有子树都大于一个元素。填充二叉树中元素对应的节点。例如,如果您在某个时间点拥有这棵树:

新的值 3 到达,它会用值 2 填充节点的右孩子。但是,如果 5 到达,则在预定义的树结构中没有地方放置它。

于 2012-11-04T22:17:21.137 回答