【问题标题】:Tree that efficiently avoids duplicate values in ancestors有效避免祖先中重复值的树
【发布时间】:2017-06-30 12:40:12
【问题描述】:

问题很简单:

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

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

  3. 但是,在其祖先中具有重复值的子级必须被过滤掉。

是否有(希望是简单的)有效维护此数据结构的方法?

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

【问题讨论】:

    标签: data-structures tree set


    【解决方案1】:

    使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 2013-04-08
      • 2015-08-09
      • 2012-08-16
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多