日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

树的Prufer 编码和最小生成树计数

發(fā)布時(shí)間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树的Prufer 编码和最小生成树计数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Prufer數(shù)列 Prufer數(shù)列是無(wú)根樹(shù)的一種數(shù)列。在組合數(shù)學(xué)中,Prufer數(shù)列由有一個(gè)對(duì)于頂點(diǎn)標(biāo)過(guò)號(hào)的樹(shù)轉(zhuǎn)化來(lái)的數(shù)列,點(diǎn)數(shù)為n的樹(shù)轉(zhuǎn)化來(lái)的Prufer數(shù)列長(zhǎng)度為n-2。它可以通過(guò)簡(jiǎn)單的迭代方法計(jì)算出來(lái)。它由Heinz Prufer于1918年在證明cayley定理時(shí)首次提出。

目錄

1將樹(shù)轉(zhuǎn)化成Prufer數(shù)列的方法

2將Prufer數(shù)列轉(zhuǎn)化成樹(shù)的方法

將樹(shù)轉(zhuǎn)化成Prufer數(shù)列的方法

一種生成Prufer序列的方法是迭代刪點(diǎn),直到原圖僅剩兩個(gè)點(diǎn)。對(duì)于一棵頂點(diǎn)已經(jīng)經(jīng)過(guò)編號(hào)的樹(shù)T,頂點(diǎn)的編號(hào)為{1,2,...,n},在第i步時(shí),移去所有葉子節(jié)點(diǎn)(度為1的頂點(diǎn))中標(biāo)號(hào)最小的頂點(diǎn)和相連的邊,并把與它相鄰的點(diǎn)的編號(hào)加入Prufer序列中,重復(fù)以上步驟直到原圖僅剩2個(gè)頂點(diǎn)。 例子 Prufer數(shù)列   以上邊的樹(shù)為例子,首先在所有葉子節(jié)點(diǎn)中編號(hào)最小的點(diǎn)是2,和它相鄰的點(diǎn)的編號(hào)是3,將3加入序列并刪除編號(hào)為2的點(diǎn)。接下來(lái)刪除的點(diǎn)是4,5被加入序列,然后刪除5,1被加入序列,1被刪除,3被加入序列,此時(shí)原圖僅剩兩個(gè)點(diǎn)(即3和6),Prufer序列構(gòu)建完成,為{3,5,1,3}

2將Prufer數(shù)列轉(zhuǎn)化成樹(shù)的方法

設(shè){a1,a2,..an-2}為一棵有n個(gè)節(jié)點(diǎn)的樹(shù)的Prufer序列,另建一個(gè)集合G含有元素{1..n},找出集合中最小的未在Prufer序列中出現(xiàn)過(guò)的數(shù),將該點(diǎn)與Prufer序列中首項(xiàng)連一條邊,并將該點(diǎn)和Prufer序列首項(xiàng)刪除,重復(fù)操作n-2次,將集合中剩余的兩個(gè)點(diǎn)之間連邊即可。 例子 仍為上面的樹(shù),Prufer序列為{3,5,1,3},開(kāi)始時(shí)G={1,2,3,4,5,6},未出現(xiàn)的編號(hào)最小的點(diǎn)是2,將2和3連邊,并刪去Prufer序列首項(xiàng)和G中的2。接下來(lái)連的邊為{4,5},{1,5},{1,3},此時(shí)集合G中僅剩3和6,在3和6之間連邊,原樹(shù)恢復(fù)。

?

?

?

1. 一棵標(biāo)號(hào)樹(shù)的Pufer編碼規(guī)則如下:找到標(biāo)號(hào)最小的葉子節(jié)點(diǎn),輸出與它相鄰的節(jié)點(diǎn)到prufer 序列, 將該葉子節(jié)點(diǎn)刪去,反復(fù)操作,直至剩余2個(gè)節(jié)點(diǎn)。

?

2. 由Pufer編碼生成樹(shù):任何一個(gè)prufer 序列可以唯一對(duì)應(yīng)到一棵有標(biāo)號(hào)的樹(shù),首先標(biāo)記所有節(jié)點(diǎn)為未刪除 依次掃描prufer 序列中的數(shù),比如當(dāng)前掃描到第k個(gè)數(shù)u,說(shuō)明有一個(gè)葉子節(jié)點(diǎn)連到u,并在當(dāng)前操作中被刪除,找一個(gè)標(biāo)號(hào)最小的未被標(biāo)記為刪除的且在prufer 序列第k個(gè)位置后未出現(xiàn)過(guò)的節(jié)點(diǎn)v,在u,v間連邊并將v刪除,反復(fù)操作,最后剩兩個(gè)節(jié)點(diǎn)未被標(biāo)記為刪除,在它們之間連邊,這樣得到的一個(gè)圖含有n-1條邊則是一棵樹(shù)

3. 一棵樹(shù)N個(gè)結(jié)點(diǎn),其Profer序列有N-2個(gè)位置,因此可以在這N-2個(gè)位置里面任何的填充1~N之間的數(shù)形成一個(gè)prufer序列,且一個(gè)prufer序列唯一的對(duì)應(yīng)一顆生成樹(shù),于是完全圖的最小生成樹(shù)的數(shù)目為N^(N-2)

?

推薦做題:pku2567,pku2568

?

轉(zhuǎn)載于:https://www.cnblogs.com/jeff-wgc/p/4472528.html

總結(jié)

以上是生活随笔為你收集整理的树的Prufer 编码和最小生成树计数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。