久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - 如何求多叉樹兩個任意節(jié)點的最短路徑呢?

瀏覽:190日期:2024-02-02 11:31:00

問題描述

每個節(jié)點的數(shù)據(jù)結(jié)構(gòu)是一個value ,和這個節(jié)點的所有子節(jié)點

問題解答

回答1:

設(shè)有n個節(jié)點。

樹轉(zhuǎn)無向圖,然后用n次dijkstra、spfa等單源最短路算法或1次floyd多源最短路算法求任意兩節(jié)點的值。但是當(dāng)n比較大的話儲存值對內(nèi)存的開銷較大。

使樹成為有根樹,每個節(jié)點i儲存到根的距離di。查詢兩節(jié)點di,dj時,求兩節(jié)點的公共祖先dk,則d(i,j)=di+dj-dk*2。關(guān)于公共祖先可以參考tarjan算法。

回答2:

當(dāng)成無向圖考慮Floyd算法.

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 东辽县| 全南县| 祁门县| 吴忠市| 无为县| 灌南县| 古田县| 新巴尔虎右旗| 紫阳县| 蓬莱市| 曲沃县| 石泉县| 梅河口市| 宜良县| 桦甸市| 马尔康县| 台前县| 弥勒县| 宿州市| 许昌县| 临沂市| 广东省| 祥云县| 同德县| SHOW| 台北县| 新民市| 阳曲县| 含山县| 乌兰浩特市| 江口县| 家居| 石屏县| 社旗县| 铜山县| 山西省| 开平市| 娱乐| 霞浦县| 无极县| 县级市|