树结构的合并分析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

常见的目录结构,就可以算是多叉树结构:
平常我们做windows文件夹目录覆盖时,合并的方式:
–>同一目录中的不同名称,合并到一块来。
–>同一目录中的相同名称,选择使用其中一个。
windows下目录的合并是遵从类似并集的策略,合并键值检测通过文件名。

那对于两个未知关联的树,如何进行合并呢?

  1. 需要先建立两个树的联系,这两颗树是两个平行的树;还是一个树和另一个树的某个子节点是对应的,和子节点平行。
  2. 建立两个树的关联之后,就可以从首个平行节点开始对应往下处理
    两颗树合并想到的有几种情况:
    a. 并集型合并,把两边的节点按照节点关系,合并到一棵树上
    某个对齐节点下:有三种情况
    B树无节点x,A树有节点x, 合并后有节点x
    B树有几点y,A树无节点y, 合并后有节点y
    B树有几点z,A树有节点z, 合并后有节点z, 根据优先级,采用A树上z或B树上z
    b. 覆盖型合并,使用一个树B更新另一个树A,生成一颗更新后的树
    某个对齐节点下:有三种情况
    B树无节点x,A树有节点x, 合并无节点x
    B树有节点y,A树无节点y, 合并后有节点y
    B树有几点z,A树有节点z, 合并后有节点z, 切使用B树节点
    更新树的操作,上面操作对应于 删,增,改 三种模式
    c. 交集型合并,保留相同项
    某个对齐节点下:有三种情况
    B树无节点x,A树有节点x, 合并后无节点x
    B树有节点y,A树无节点y, 合并后无节点y
    B树有几点z,A树有节点z, 合并后有节点z, 根据优先级,采用A树上z或B树上z

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

你可能感兴趣的:(算法)