关于树的直径的算法证明

augustinlouis 2010-06-11 05:13:07
对一个无环且连通的无向图(无根树),已知任意2个节点之间都有唯一一条简单路径,树的直径被定义为此图中的最长的路径

给定一个无根树,要求其直径

此问题的一个O(n)算法如下:
任取一点u,遍历得到到它的最远点v,再对v寻找一个到它的最远点w,则路径v-w一定是一条直径

求证明。。。
...全文
368 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
michael122 2010-06-11
  • 打赏
  • 举报
回复
基本思路就是:

假设按照算法找出来的路径为P1,算法第一步中u点到P1的第一个端点的路径为P11,长度分别为L1,L11
用反证法,假设还有一条路径P2,长度为L2>L1,u点到P2的两端点的路径分别为P21,P22,长度为L21,L22
则,我们根据算法知道,L11>=L1/2
且 L21,L22两者必有一个大于等于L2/2,也就是说大于L1/2 (假设为P21)
那么,把路径P11和P21通过u连起来,就得到比L1更长的路径了。这与算法的第二步是矛盾的,因为算法说L1是通过P11的端点的最长路径


大概是这样,lz自己再整理一下
knate 2010-06-11
  • 打赏
  • 举报
回复
反证就可以了
假设最长的是L,存在另一条不相交的路径M更长.
LM比如存在一路径使两者相连.通过这个辅助路径反证应该很容易的.

(如果存在更长的而且LM有交点的假设反证更容易)
augustinlouis 2010-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 superdullwolf 的回复:]
这个脑袋能想明白,证明用数学归纳法吧。
这个不光和深度有关,和广度也有关系,距离=广度+深度
[/Quote]
我想你没明白我的意思,此图中每条边有一正权,距离为路径上所有边的权之和,你怎么说到什么广度+深度了?orz,此外,证明与数归没有关系。。
超级大笨狼 2010-06-11
  • 打赏
  • 举报
回复
这个脑袋能想明白,证明用数学归纳法吧。
这个不光和深度有关,和广度也有关系,距离=广度+深度

33,027

社区成员

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

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