網上的prufer寫的清晰的不少,看本博客以前看看別的博客,這篇主要寫一些沒有具體解釋的內容。spa
1.prufer序列中某個編號出現的次數就等於這個編號的節點在無根樹中的度數-1。 xml
由於在成生prufer序列時,每刪掉連接於該節點的一條邊時,這個節點進入序列,知道它自己變成葉子,還剩下一個度,然而被幹掉之後留下的不是它自己,因此只出現du-1次。博客
也正因如此,咱們會給無根樹剩下兩個節點,而不是所有插入,不然最後一個點將再也不知足這個性質,prufer序列優美的性質就沒了。class
2.一棵n個節點的無根樹惟一地對應了一個長度爲n-2的數列,數列中的每一個數都在1到n的範圍內。基礎
這個應該仍是比較好理解的,由於生成prufer序列時是很是有序的,不會有別的狀況,就像sort同樣,而數列中每一個數都在1-n之間,這個很顯然,不屬於這個範圍屬於哪一個範圍……可是這是另外一個性質的重要基礎。sort
3.n個點有標號無根樹的個數爲nn-2。生成
這個便應用了性質2,由於prufer序列一共n-2個位置,每一個位置填上1-n的數,總方案數可重複排列nn-2。math
4.若n個點的度數分別爲d1,d2……dn。則對應的無根樹的個數爲$\frac{(n-2)!}{\prod_{i=1}^n(d_i-1)!}$。data
由於不一樣的prufer對應不一樣的無根樹(我就是想說1,3,3,3和3,3,3,1生成的無根樹是不同的)。那就是個不全相異元素的全排列,直接套那個n!除以一坨階乘之積的式子就行了。
5.n個點的有標號有根樹的個數爲nn-1個。
這個直接用無根樹選個根就獲得了,nn-2棵無根樹,從這n個節點裏任選一個根。完事。