我有一个父指针向量[0 1 1 2 2 3 3 5 5 ....],它基本上是一个二叉树。索引是子项,相应的值表示其父项在同一向量中的索引。
例如:在上面的向量中,如果计算索引5,则元素为2,这意味着它的父元素位于索引2.再次在索引2处,元素为1,这意味着父元素位于索引1。在索引1处,元素是0,它是根节点。
如何从中创建二进制搜索树?
OR,
我以二进制树格式生成数据,其中我知道父节点和相应的子节点,如何将它们存储在二叉搜索树中?
儿童的索引将始终大于父级,如上图所示。 一个例子是:我取节点1,将它分成两个节点,2和3.然后取节点2并将其分成4和5.然后我取节点4并将其分为6和7,依此类推。 我想在父二进制搜索树中保留父子关系。
最好的问候
Wajahat
答案 0 :(得分:0)
根据向量中的规范生成带有空元素的二叉树。 在新元素到达时,找到放置它的地方:根据二叉搜索树规则遍历树 - 左子树中的所有子节点都小于元素,右子树中的所有子节点都更大。填充二叉树中与元素对应的节点。 例如,如果您在某个时间点拥有此树:
并且新值3到达,它将填充值为2的节点的右子节点。 但是,如果5到达,则没有地方可以将其放在预定义的树结构中。