LCA(最近公共祖先) 疑问?

shadow0577 2007-05-14 12:28:47

在对树进行DFS遍历时,如果最开始选取的根结点不同,那么结果不是也会不同的吗?
比如下面一棵树分别选0作为根结点 和 选2作为根结点时就得出两个不同的结果了.
0 2
/ \ /| \
1 2 0 3 4
/ \ /
3 4 1

LCA(1,2)=0 LCA(1,2)=2

那么在做题时应该如何选择呢?
...全文
309 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadow0577 2007-05-14
  • 打赏
  • 举报
回复
看不太懂 太高深了.
bigc2000 2007-05-14
  • 打赏
  • 举报
回复
否:
原因:
S-〉ASSS|e(右端S的个数不固定)
A->0|1|2(终结符)

因此对于任意2个终结符,都必定存在有的S,使得在推到过程中,使用A。A就是公共祖先。

又因为,祖先的个数是有限个,因此比定有最近的祖先(且唯一,如果不唯一,假设有2个,R1,R2,也就是说R1有子孙,R2也有该子孙,即有两个完全相同的子孙,显然矛盾)。
shadow0577 2007-05-14
  • 打赏
  • 举报
回复
谢谢,明白了, 请问你们参加ACM吗?
galois_godel 2007-05-14
  • 打赏
  • 举报
回复
祖先是会根据根节点不同变得,因为根节点是最高级的祖先阿

如果是最近公共节点,就不会变了
flyingdog 2007-05-14
  • 打赏
  • 举报
回复
当然是基于同样一棵树的。树不同,答案当然不同。

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧