Red Huang

Red Huang

Is A Tree?

解法
若一圖形為 tree 的結構,表示此圖形中所有的點都互相連通且必無 cycle 存在,因此判斷 cycle 的存在是本題最重要的關鍵。一個判斷有無 cycle 存在的簡單方法是利用集合的概念,把目前已知的連線關係歸類到同一個集合中,我們設計一個範例來逐步解釋這個過程:

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 已經屬於同一個集合,將同一個集合內的兩個點連起來必然會形成 cycle,因此這個圖形不是 tree。

若所有的輸入處理完後,所有的點都屬於同一個集合,則這個圖形就是一個 tree。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。