【问题标题】:Binary Search Tree Generation from increasing index从增加索引生成二叉搜索树
【发布时间】:2012-10-11 03:50:02
【问题描述】:

我有一个父指针向量 [ 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,以此类推。 我想在二叉搜索树中保留父子关系。

最好的问候

Wajahat

【问题讨论】:

  • 问题是什么?我在帖子中没有看到问号...
  • 抱歉,现在您可以轻松识别问题了。
  • 谢谢,现在清楚多了

标签: search linked-list binary-search-tree b-tree b-tree-index


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多