2013-03-06 88 views
0

我有一棵樹,有N個頂點v1,v2,v3 .... vN。樹在vertex v1上被掛起。現在我在樹上選擇了一些隨機路徑。如何知道在所有這些選擇路徑上的樹中是否存在邊緣?邊緣位於給定樹的多個頂點之間

編輯 - 所有的路徑是雙向的。

+0

所有的路徑是從v1開始的嗎? – 2013-03-06 21:13:18

+0

假設有一條路徑v2-> v3-> v4-> v5,另一條路徑是v6-> v3-> v4-> v7。這些路徑不是以相同的邊緣開始,但它們共享一個共同的路徑v3-> v4。如果我錯了,請糾正我。 – Rana 2013-03-06 21:15:48

+0

不,不保證所有路徑從v1開始。 – Rana 2013-03-06 21:16:40

回答

0

正如G.Bach所建議的那樣,您遍歷每條路徑,並在此過程中爲每條邊記錄它包含在路徑中的次數。最後,您可以遍歷邊集,並且與路徑數相同的邊(或邊)將成爲所有選定路徑上的邊。

由於在樹中確切地有n-1邊緣,所以這個算法是O(n),我猜是最高效了。

相關問題