问题很简单:
我有一个(可能是非常不平衡的)树。
在每次迭代时,都会将新子节点附加到某个节点。
但是,必须过滤掉其祖先中重复值的儿童。
是否有一种(希望简单的)方法可以有效地维护这种数据结构?
显而易见的方法是每次追加需要 O(深度(节点))时间,这是我试图避免的。
答案 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