代码之家  ›  专栏  ›  技术社区  ›  Elroy

使用树的序列化和每个子树的唯一id生成进行树匹配

  •  1
  • Elroy  · 技术社区  · 17 年前

    Binary tree http://img9.imageshack.us/img9/9981/binarytree.jpg

    例如,我需要序列化子树(2,7,(5,6,11))并生成一个唯一的id

    4 回复  |  直到 17 年前
        1
  •  2
  •   dirkgently    17 年前

    您是否希望能够匹配树或子树的任意部分,直到某个叶子节点?IIUC,您正在查看后缀匹配。

    您还可以查看紧凑有向无环字图以获取想法。

        2
  •  2
  •   Cecil Has a Name    17 年前

    我会根据节点的ID和在树中的位置生成一个哈希值(以某种Rabin-Karp方式),即:

    long h = 0
    for each node in sub tree:
        h ^= node.id << (node.depth % 30)
    

        3
  •  1
  •   Benoît photo_tom    17 年前

    "2,7,2,U,6,5,U,11,U,U,U,5,9,4"
    

    Boost.Graph (BGL)以供实施。

        4
  •  1
  •   Maurice Perry    17 年前