解法
若一圖形為樹的結構,表示此圖形中所有的點都互相連通且必無循環存在,因此判斷循環的存在是本題最重要的關鍵。一個判斷有無循環存在的簡單方法是利用集合的概念,把目前已知的連線關係歸類到同一個集合中,我們設計一個範例來逐步解釋這個過程:
Input
1 2
2 3
4 6
2 5
2 4
5 6
0 0
首先我們假設所有的點都不在任何一個集合中。
第一個輸入:1 2,代表 1 指向 2,所以我們把 1 與 2 歸類成集合 I。
第二個輸入:2 3,表示 2 指向 3,所以 3 也屬於集合 I。
第三個輸入:4 6,表示 4 指向 6,所以 4 與 6 屬於另一個集合 II
下一個輸入:2 5,所以 5 也屬於集合 I。
下一個輸入:2 4,所以包含 4 的這個集合內的全部元素都應該歸類到集合 I。
最後一個輸入:5 6,表示 5 指向 6,但是 5 與 6 已經屬於同一個集合,將同一個集合內的兩個點連起來必然會形成循環,因此這個圖形不是樹。
若所有的輸入處理完後,所有的點都屬於同一個集合,則這個圖形就是一棵樹。