2013-11-04 30 views
2

如何設計一個算法,以線性時間計算(圖理論)無向,全邊有權重1樹的直徑?樹的直徑由兩個頂點之間最長路徑的長度給出。計算任何一種樹的直徑?

任何想法如何解決這個問題?

+5

你對這棵樹瞭解多少?樹幹的高度,重量,密度,均勻度,樹幹周長,物種,生長條件,風/光暴露量,具有天氣歷史的核心環的壽命等等。這是一個極其可變的數據位。 – Orbling

+1

@Orbling好的,哈哈。溫斯頓,你如何定義一棵樹的直徑? – nullpotent

+0

@搖擺不定,它只是一棵樹 –

回答

7

設v1是樹中的任何頂點。

從v1開始進行深度優先搜索,從v1中獲取所有其他頂點的距離,選擇v2作爲距離最遠的頂點。

從v2開始進行深度優先搜索,從v2中獲取所有其他頂點的距離,選擇v3作爲距離最高的頂點。

D(v2,v3)是樹的直徑。複雜度爲O(| V |),因爲DFS對於樹是線性的。