【发布时间】:2017-06-30 12:40:12
【问题描述】:
问题很简单:
我有一棵(可能非常不平衡的)树。
在每次迭代中,都会将新的子节点附加到某个节点。
但是,在其祖先中具有重复值的子级必须被过滤掉。
是否有(希望是简单的)有效维护此数据结构的方法?
显而易见的方法每次追加都需要 O(depth(node)) 时间,我试图避免这种情况。
【问题讨论】:
标签: data-structures tree set
问题很简单:
我有一棵(可能非常不平衡的)树。
在每次迭代中,都会将新的子节点附加到某个节点。
但是,在其祖先中具有重复值的子级必须被过滤掉。
是否有(希望是简单的)有效维护此数据结构的方法?
显而易见的方法每次追加都需要 O(depth(node)) 时间,我试图避免这种情况。
【问题讨论】:
标签: data-structures tree set
使用 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
【讨论】: