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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Purfer序列

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Purfer序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們經常干的一件事是把數變為關于圖的問題來解決,那么久了未免不會有這個疑問:能不能把圖變成數來解決問題?

所以有了這個purfer數列。

介紹一下這個數列有什么用(或者說有什么性質):

  • 能夠將一棵無根樹轉化成一個數列,且按這種編碼數列具有唯一性
  • 2.給定一purfer數列,可以還原出原來的無根樹,且有且僅有一種方法。

    那么這個數列是怎么形成的呢?下面來大概敘述一下整個過程:

    (1) 生成數列:

    選取此時樹上編號最小的葉子節點,刪除此節點且將此節點所連接的節點加入數列末端

    不斷的重復上述操作,直到只剩兩個節點時停止該操作。

    (所以一個purfer序列的長度應為n-2)

    (2)還原無根樹:

    設集合A = {1,2,3,...... ,n-1, n}

    設purfer數列 a1, a2, ...... , an

    順次選出purfer數列首位元素,然后在集合A中選出另一元素與它相連邊

    選出元素需滿足一下特點:

    ① 該元素此時不能在purfer序列中

    ② 該元素此時應在集合A中

    ③ 滿足以上兩條件的最小元素

    不斷進行以上操作,知道purfer數列為空,此時A集合必然存在兩個元素,最后將這兩個元素連接起來,則此無根樹還原完畢。

    具體樣例如下:

    purfer編碼為 1 2 2

    那么來思考幾個問題:

    (1) 為什么此方法能夠還原?

    我認為可以這樣想,首先(用上面的例子來說),你是先刪除了一個點3,然后再把這個點所連的一個點1加入purfer的。那么顯然你這個點3一定不在是、此時的purfer中,對吧?同樣的道理,無論什么時候,你purfer的首位所連接的數一定不在后面的隊列中(因為你要先刪除他,然后再把這個數所連接的數加入purfer),而由于我們每次都找的是編號最小的數,所以我們把有可能的數中找出最小數就好了,就能夠唯一確定了。而由于每個數最多只能被刪一次,所以A集合中的數用完之后就要刪去,他也只能被用一次。所以purfer中一共有n-2個數,就有n-2次操作,就連了n-2條邊。而你最后僅剩下的兩個數有且僅有一種選擇就是連最后一條邊,所以綜上就是n個點,連接n-1條邊,這必然就是一棵樹了。

    (2)這樣還原的一個特殊性質:(雖然說是無根樹,我們假設它初具樹形233,就是假裝有兒子和父親節點)

    有觀察可以得到,如果說一個點本來就是葉節點,那么他就悲劇了,他一來就直接被刪了,根本就沒有機會進入purfer;而如果像圖中的節點1就要稍稍幸運一些,他要在節點3被刪了以后才被刪,而節點3被刪時他就可以進入一次purfer數列;那么一個點什么時候會被刪呢? 當然是他是葉子節點的時候,也就是度為1的時候;那么怎么才能成為葉子節點?很簡單,你的周圍所連接的其他兒子點都被解決之后你就成為了葉子節點;換句話說,假設你周圍有n個兒子節點,那么你就有n次進入purfer的機會,再進一步就可以得到一個很重要的結論:一個點的度數 = 它在purfer中出現的次數 + 1(它和父節點的連邊)

    轉載于:https://www.cnblogs.com/LLppdd/p/8471439.html

    總結

    以上是生活随笔為你收集整理的Purfer序列的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。