樹的同構判斷

2021-10-04 22:07:46 字數 696 閱讀 2322

中國慕課–樹的同構判斷

#include

#include

struct treet1[10]

,t2[10]

;int

buildtree

(struct tree*t)

else

t[i]

.left=-1

;if(cr!=

'-')

else

t[i]

.right=-1

;}for(i=

0;i) root=i;

free

(check)

;return root;

}int

isomorphic

(int r1,

int r2)

intmain()

樹的同構判斷的核心在於每乙個結點的兒子結點,無論如何交換,只會更換左右,而不會改變。

因此。需要從根開始判斷,每個節點的兒子結點是否改變(非左右交換)。所以問題大致分為兩部分,一是在輸入中找到樹的根節點,二是從根節點開始判斷兩棵樹是否同構(兩樹的結點的兒子結點是否只發生左右交換或不交換)。

有個非常惱人的問題是在讀入輸入時,將每個節點的標誌,以及其節點的兒子結點的陣列下標位置的輸入格式需要去除回車的影響。

內容**於中國mooc–資料結構【陳越老師】

判斷樹的同構

03 樹1 樹的同構 25分 給定兩棵樹t1和t2。如果t1可以通過若干次左右孩子互換就變成t2,則我們稱兩棵樹是 同構 的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點a b g的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。圖1圖2 現給定兩棵樹,請你判斷它們是否是同構的。...

樹 樹的同構

給定兩棵樹t1和t2。如果t1可以通過若干次左右孩子互換就變成t2,則我們稱兩棵樹是 同構 的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點a b g的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。圖1 圖2輸入給出2棵二叉樹樹的資訊。對於每棵樹,首先在一行中給出乙個非負整數n...

判斷同構數

description 正整數n若是它平方數的尾部,則稱n為同構數。例如 5的平方數是25,且5出現在25的右側,那麼5就是乙個同構數。input 乙個不超過4位的正整數n。output 如果n是乙個同構數,則輸出 yes。否則輸出no。sample input 5sample output yes...