有向樹與樹的括號序列最小表示法

2021-07-15 10:47:54 字數 817 閱讀 6228

[有向樹] 乙個弱連通有向圖,若去掉方向後得到一棵樹,則稱此有向圖為一棵有向樹,記為t。

[外向樹] 若乙個有向樹t,有且只有乙個頂點入度為0,其餘頂點入度都為1,則稱t為外向樹。t中入度為0的節點被稱為t的根節點,出度為0的節點被稱為t的葉節點。每個節點的有向邊指向的節點被稱為該節點的子節點。

[內向樹] 若乙個有向樹t,有且只有乙個頂點出度為0,其餘頂點出度都為1,則稱t為內向樹。t中出度為0的節點被稱為t的根節點,入度為0的節點被稱為t的葉節點。每個節點的有向邊的反向邊指向的節點被稱為該節點的子節點。

外向樹和內向樹都是有根樹。

如上,圖1為一棵外向樹,圖2為一棵內向樹。

[樹的括號序列最小表示法]

定義s[t]表示以t為根的子樹的括號序列

s[t]=

『(『,』)』 (如果t為葉節點)

『(『,s[c1],s[c2],…,s[ck],』)』 (c1,c2,…,ck為t的k個子節點,s[c1],s[c2],…,s[ck]要按照字典序排列)

為了保證同構的樹的括號序列表示具有唯一性,我們必須規定子樹點的順序。按照子樹的括號序列的字典序就是一種不錯的方法。

例如上述圖2,它的括號序列最小表示就是((()()())())。

[有根樹的同構]

對於乙個有根樹,我們可以通過比較他們的括號序列的最小表示,如果他們的括號序列最小表示完全相等,那麼他們同構。

樹的括號表示法

樹的括號表示法 時 限 1000 ms 記憶體限制 3000 k 總時限 3000 ms 描述 樹的括號表示法 先將根結點放入一對圓括號中,然後把它的子樹按由左而右的順序放入括號中,而對子樹也採用同樣方法處理 同層子樹與它的根結點用圓括號括起來,同層子樹之間用逗號隔開,最後用閉括號括起來。例如下圖可...

標題 樹的括號表示法

樹的括號表示法 時 限 1000 ms 記憶體限制 3000 k 總時限 3000 ms 描述 樹的括號表示法 先將根結點放入一對圓括號中,然後把它的子樹按由左而右的順序放入括號中,而對子樹也採用同樣方法處理 同層子樹與它的根結點用圓括號括起來,同層子樹之間用逗號隔開,最後用閉括號括起來。例如下圖可...

樹的雙親表示法

之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體。typedef struct node n,pn 再用乙個結構體將這個線性陣列的資訊包含起來 typ...