
数据结构
leehwi
这个作者很懒,什么都没留下…
展开
-
LCA 最近公共祖先
首先,介绍何谓“最近公共祖先”,其实就是对于一颗二叉或者多叉树来说,每个节点都有祖先节点(根节点除外),对于任意两个点,a,b,它们可能有多个公共的祖先点c,即c为a的祖先且c为b的祖先,我们定义深度最大的那个公共祖先C为a,b的最近公共祖先,这个点是唯一的。 对于求最近公共祖先的算法有不少,著名的是LCA的在线算法和离线算法,看了这么多网上的代码,很少能找到我中意的,而且有些在线算法时间复杂转载 2015-01-05 10:54:45 · 815 阅读 · 0 评论 -
并查集
并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。 使用并查集时,首先会存在一组不相交的动态集合 S={S1,S2,⋯,Sk},一般都会使用一个整数表示集合中的一个元素。 每个集合可能转载 2015-01-04 21:04:15 · 542 阅读 · 0 评论