摘要: LCA的Tarjan离线(offline)算法中,通过后序DFS遍历多叉树(结点数为n),利用并查集算法(disjoint sets‘ union-find operations),可以在线性时间O(n+|P|)内找到事先给定(即offline的含义)的|P|个成对结点的LCA。具体做法如下:1)首先所有的结点通过makeSet(x)调用放到各自独立集合中,然后在用lca(u)递归调用任何一个结点u时,按照从左到右顺序依次遍历u的所有子树v1,v2...vk,在v1被访问之后,v1的属性visited标记为true(此时u的属性visited还是false),然后将v1子树中所有结点与u结点合 阅读全文
posted @ 2011-08-16 12:05 ljsspace 阅读(2478) 评论(0) 推荐(1) 编辑