Data structures 有效避免祖先中重复值的树

Data structures 有效避免祖先中重复值的树,data-structures,tree,set,Data Structures,Tree,Set,问题很简单: 我有一棵(可能非常不平衡的)树 在每次迭代中,新的子节点被附加到某个节点 但是,必须筛选出在其祖先中具有重复值的子级 是否有一种(希望是简单的)方法可以有效地维护此数据结构 显而易见的方法是每次追加都需要O(depth(node))时间,这是我试图避免的。使用AVL树或二进制搜索树(BST)。您必须应用一个小的逻辑来避免AVL/BST中的重复。该逻辑:在树构建中仅使用>,=,=

问题很简单:

  • 我有一棵(可能非常不平衡的)树

  • 在每次迭代中,新的子节点被附加到某个节点

  • 但是,必须筛选出在其祖先中具有重复值的子级

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


    显而易见的方法是每次追加都需要O(depth(node))时间,这是我试图避免的。

    使用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
    
    if(当前节点值新节点值)
    在\u右侧插入\u
    else//表示重复条目
    打印“重复条目”
    回来