不斷找編號最小的葉子節點,刪掉並在序列中加入他相連的節點。函數
找到在目前\(prufer\)序列中未出現且未使用的編號最小的的節點與當前位相連,當前位從\(prufer\)序列中刪除,節點標爲已使用,剩餘最後兩個未使用的節點相連。spa
\(1.prufer\)序列中某個編號出現的次數就等於這個編號的節點在無根樹中的度數-1。
\(2.\)一棵n個節點的無根樹惟一地對應了一個長度爲\(n-2\)的數列,\(n\)個點的無根樹有\(n^{(n-2)}\)種。class
\(1.\)n個節點度數依次爲\(D_1,D_2,D_3...D_n\)的無根樹的種類有(可重集的組合):
\[\frac{(n-2)!}{((D_{1}-1)!\times...\times(D_{n}-1)!)}\]
\(2.\)在\(1\)的基礎上,有\(m\)個節點度數未知,剩餘\(left\)個位置(prufer中,共n-2個),種類有(先把left挑出來\(\times\)再讓m個點分left位置,乘法原理):
\[{(n-2)!\times m^{left}}\over{((D_{1}-1)!\times \cdots \times(D_{n-m}-1)!\times left!)}\]
\(3.n\)個點有標號有根樹:\(n^{n-2}\times n=n^{n-1}\)
\(4.n\)個點無標號有根樹:坑——生成函數
\(5.n\)個點無標號無根樹:坑——生成函數基礎