什麼是森林?
森林是多棵互不相交的樹組成的集合。
森林要轉換成二叉樹,首先需要學會如何將樹轉換成二叉樹。
樹轉換成二叉樹
1.加線:所有兄弟結點之間加一條線;
2.去線:樹中每乙個結點,只保留與最左邊孩子結點的連線,去掉所有與其他結點的連線;
3.旋**以根節點為軸心,將樹順時針旋轉一定角度,使其結構分明。
森林轉換成二叉樹
1.先將森林裡的每一棵樹轉換成二叉樹;
2.森林裡,第一棵樹不動,從第二棵樹開始,依次作為第一棵樹根節點的右孩子,用線連起來,直到合併成一顆樹。
二叉樹轉成樹
1.加線:將結點x中左孩子的右孩子,左孩子的右孩子的右孩子,左孩子的右孩子的右孩子的右孩子......與結點x連起來;
2.去線:去掉所有右孩子與其原來父節點的連線;
3.層次調整。
二叉樹轉換成森林
加入一顆二叉樹的根節點有右孩子,則它能夠轉換成森林,否則將轉換成一顆樹。
1.從根節點開始,如果右孩子存在,則斷開與右孩子的連線,再對分離出的右子樹做同樣的操作,直到子樹沒有右孩子;
2.再將分離後的二叉樹,轉換成樹。
森林與二叉樹的轉換
對於一般樹,樹中孩子的次序並不重要,只要雙親與孩子的關係正確即可。但在二叉樹中,左 右孩子的次序是嚴格區分的。所以在討論二叉樹與一般樹之間的轉換時,為了不引起混淆,約定按樹上現有結點次序進行轉換。這裡研究二叉樹與一般樹之間的轉換,可以了解兩者之間的內在本質聯絡,同時在研究解決一般樹的問題時,有時可以...
樹 森林與二叉樹的轉換
1 加線。在所有兄弟節點之間加一條線。2 去線。對樹中每個節點,只保留它與第乙個孩子節點的連線,刪除它與其他孩子節點之間的連線。3 層次調整。以樹的根節點為軸心,將整顆樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹節點的左孩子,兄弟轉換過來的孩子是節點的右孩子。1 把每個樹轉換為二...
樹 森林與二叉樹的轉換
樹或森林與二叉樹之間有乙個自然的一一對應關係。任何乙個森林或一棵樹可惟一地對應到一棵二叉樹 反之,任何一棵二叉樹也能惟一地對應到乙個森林或一棵樹。1 樹 森林到二叉樹的轉換 1 將樹轉換為二叉樹 樹中每個結點最多只有乙個最左邊的孩子 長子 和乙個右鄰的兄弟。按照這種關係很自然地就能將樹轉換成相應的二...