社区
数据结构与算法
帖子详情
关于树的直径的算法证明
augustinlouis
2010-06-11 05:13:07
对一个无环且连通的无向图(无根树),已知任意2个节点之间都有唯一一条简单路径,树的直径被定义为此图中的最长的路径
给定一个无根树,要求其直径
此问题的一个O(n)算法如下:
任取一点u,遍历得到到它的最远点v,再对v寻找一个到它的最远点w,则路径v-w一定是一条直径
求证明。。。
...全文
454
5
打赏
收藏
关于树的直径的算法证明
对一个无环且连通的无向图(无根树),已知任意2个节点之间都有唯一一条简单路径,树的直径被定义为此图中的最长的路径 给定一个无根树,要求其直径 此问题的一个O(n)算法如下: 任取一点u,遍历得到到它的最远点v,再对v寻找一个到它的最远点w,则路径v-w一定是一条直径 求证明。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
这个脑袋能想明白,证明用数学归纳法吧。
这个不光和深度有关,和广度也有关系,距离=广度+深度
树
的
直径
证明
算法
导论
树
的
直径
的定义:
树
中任意两点距离的最大值
树
的
直径
的求法: 从
树
的任意一点y,通过BFS到达终点x;则x必为
直径
的一个端点。再从x通过BFS到达终点z。z必为
直径
的另一个端点。则从x经过BFS到z的路径为
树
的其中一条
直径
。
证明
: 思路: 首先利用反证法
证明
x为
直径
的一个端点,则同理z也是
直径
的一个端点,从而xz为
树
的
直径
。 证: 反证法。 假设x不为...
树
的
直径
+
证明
概念
树
的
直径
:2点距离最远的路径。 结论 先说结论,对于一颗无根
树
,首先随便找一个点 u 开始进行搜索,找到离当前点最远的一点 s , 然后从 s 开始搜最远的点 t ,
树
的
直径
就为 s - t 。
证明
找到
直径
,我们只需找到
直径
2个端点其中的一个,然后找到离当前点最远的点即为另一个端点。 1.首先u在s-t的路径上,很明显是对的,到达u最远的点必为s或t,因为是从u开始搜最远的点的。 2.u...
DFS求
树
的
直径
这个知识点我是在刷题的时候遇见的,正好也学过dfs,所以这个知识点就吸收的特别快,学这个之前记得要把dfs弄懂后再看
证明
任意一点P搜出的最远端点Q必定为
直径
的某一端!!!!!!
【
树
上
算法
】
树
的
直径
树
的
直径
一、什么是
树
的
直径
直径
往往和圆有关系。数学中,圆的
直径
是圆内最长的一条线段。那么在
树
中,
树
的
直径
就是
树
中最长的一段距离。 二、计算
树
的
直径
的思路 命题: ①在
树
上任取一个点x,找到距离x最远的一个点,即为y。y就是
直径
的一段。 ②再找到距离y最远的一个点,即为z。这时候,y->z的路径就是
树
的
直径
了。
证明
命题:(分①②两步证) ①:任取一点,距离这个点最远的点就是
直径
的一段。 分两种情况。 情况一:x点位于
直径
上。 在
直径
上的话图大概是长这样的。
直径
的一段(y) 若干节点 选取的点(x
leetcode — 1245.
树
的
直径
链接:
树
的
直径
__牛客网 给定一棵
树
,求出这棵
树
的
直径
,即
树
上最远两点的距离。 包含n个结点,n-1条边的连通图称为
树
。 示例1的
树
如下图所示。其中4到5之间的路径最长,是
树
的
直径
,距离为5+2+4=11 输入 6,[[0,1],[1,5],[1,2],[2,3],[2,4]],[3,4,2,1,5] 输出 11 ...
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章