最低公共祖先算法有哪些实际应用?

6

1
科学计算中的空间数据结构树,计算生物学中的字符串后缀树等等。抱歉忘记了具体细节,但肯定很有用。 - polygenelubricants
3个回答

6
在编译器中,两个基本块的最近公共祖先是可以放置计算以使其对两个块都可用的位置。这可能对消除常见子表达式或插入phi节点进行SSA转换很有用。这些算法已经发展成熟且高度优化,因此LCA本身可能难以观察,例如SSAPRE

5

不知道它在哪里被使用,但我有几个想法可能会用到:

  • 计算机图形学:通常将3D场景分割成立方体,形成树状结构。如果你有一个对象包含在两个这样的立方体中,LCA算法会给出最小的包含更大的立方体。

  • 基因分析,以找到物种之间的关系和它们的最近公共祖先

  • 版本控制系统的合并算法


1
版本控制 -> 三方合并: http://en.wikipedia.org/wiki/Merge_(revision_control)#Three-way_merge - Lazer
当寻找不同后缀的词根时,它对某些字符串处理也非常有用。 - Arnold Spence

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接