有效避免祖先

时间:2017-06-30 12:40:13

标签: data-structures tree set

问题很简单:

  1. 我有一个(可能是非常不平衡的)树。

  2. 在每次迭代时,都会将新子节点附加到某个节点。

  3. 但是,必须过滤掉其祖先中重复值的儿童。

  4. 是否有一种(希望简单的)方法可以有效地维护这种数据结构?

    显而易见的方法是每次追加需要 O(深度(节点))时间,这是我试图避免的。

1 个答案:

答案 0 :(得分:-2)

使用AVL树或二叉搜索树(BST)。您必须应用一个小逻辑来避免AVL / BST中的重复。该逻辑:仅使用>,<树建设中的运营商。永远不要使用> =,=<运营商。 //伪代码:

if(present_node_value<new_node_value)
insert_in_left_side
else if(present_node_value>new_node_value)
insert_in_right_side
else    // Means duplicate entry
print " Duplicate Entry"
return