Q
發現二叉樹
7
A
回答
10
其所謂直徑樹的。
int diameter(Tree * t) // post: return diameter of t
{
if (t == 0) return 0;
int lheight = height(tree->left);
int rheight = height(tree->right);
int ldiameter = diameter(tree->left);
int rdiameter = diameter(tree->right);
return max(lheight + rheight + 1, max(ldiameter,rdiameter));
}
alt text http://www.cs.duke.edu/courses/spring00/cps100/assign/trees/diameter.jpg
4
什麼您正在尋找可命名graph diameter。爲了得到它,你需要計算從任何頂點到其他任何頂點的路徑,然後遍歷所有頂點並找到最大的路徑。
可以使用Dijkstra's algorithm或者通過簡單地distance matrix來實現儘管它會比Dijkstra算法更多的時間(這可通過adjacency matrix供電來實現)。
+0
+1首先得到它:) – 2010-03-15 11:14:27
1
由於這是一個樹,只有一個任何對頂點之間的路徑。這使我們更容易找到圖形的直徑。
做到這一點,最簡單的方法是通過做樹的兩個簡單的遍歷。首先,使用任意節點作爲根,並使用簡單的DFS/BFS計算每個頂點的距離。現在,取距根最遠的節點(這是距離最遠的一對節點的第一個節點),並將其作爲新根,然後運行另一個樹計算距離的遍歷。距離它最遠的節點是該對中的另一個節點。
爲什麼這項工作的證明留作練習。
還有一個計算通過計算並比較最遠處對用於樹從作爲根(在另一個答案已經提到)的任意節點開始的每個子樹的最遠處的一對的另一種方式。
相關問題
- 1. 實現二叉樹
- 2. 二叉樹實現
- 3. 從二叉樹實現二叉樹實現的線程
- 4. 錯誤發現二叉搜索樹
- 5. PHP二叉樹實現
- 6. 二叉樹到二叉搜索樹(BST)
- 7. 二叉樹 - 哪一種二叉樹
- 8. Python二叉樹
- 9. 非二叉樹
- 10. balanced()二叉樹
- 11. 二叉樹
- 12. JAVA:二叉樹
- 13. 二叉樹
- 14. 二叉樹值
- 15. javascript二叉搜索樹的實現
- 16. removeNode爲二叉搜索樹的實現
- 17. Java二叉樹,如何實現Node?
- 18. 二叉搜索樹C的實現
- 19. 二叉搜索樹在C#實現
- 20. Java二叉搜索樹實現問題。
- 21. 平衡二叉樹
- 22. 二叉樹轉移
- 23. 二叉樹方法
- 24. 鬆開二叉樹
- 25. 二叉搜索樹
- 26. 偏斜二叉樹
- 27. 二叉搜索樹
- 28. 二叉樹遍歷
- 29. 解決二叉樹
- 30. 打印二叉樹
根據每項措施的遠景?路徑? 你能舉一個例子來澄清你的問題嗎? – Riduidel 2010-03-15 10:45:56
你在這裏測量的距離是多少?樹中的路徑長度? – Joey 2010-03-15 10:46:17