多叉樹的根結點為二叉樹的根,多叉樹的結點的第乙個兒子變成二叉樹對應結點的左孩子,多叉樹的結點的右兄弟變成二叉樹種該結點的右孩子。**如下:
c語言:
01#include
02#include
03#include
04#include
0506
typedef
struct
treenode
treenode_t; 11
12typedef
struct
binarytreenode
binarytreenode_t; 17
18binarytreenode_t
*tobinarytree(
treenode_t
*root)22
23binarytreenode_t
*binaryroot
= ( binarytreenode_t
*) malloc(
sizeof(
binarytreenode_t)); 24
binaryroot
->
value
=root
->
value; 25
binaryroot
->
leftchild
=tobinarytree(
root
->
child[0
]);26
27binarytreenode_t
*brother
=binaryroot
->
leftchild; 28
inti; 29
for( i=
1; i
<
root
->
child_count;
i++)33
return
binaryroot; 34
}3536treenode_t
*tn;
/*多叉樹的根*/
37binarytreenode_t
* bn;
/*二叉樹的根*/
3839
intmain (
intargc
,char
*argv)40
7475
tn->
value
='a'; 76
tn->
child_count=3;
77memset( t,
0,sizeof(
t)); 78
t[0]
=tmp; 79
t[1]
=tmp1; 80
t[2]
=tmp2; 81
memcpy(
tn->
child,t
,sizeof(
t)); 82
83/*轉化為二叉樹*/
84 bn
=tobinarytree(
tn); 85
86return(
0); 87
}結果就懶得寫輸出了,debug下看bn這個指標就ok了。
ps:**用的**發芽網http://fayaa.com/code轉的html,還不錯。
c語言多叉樹轉二叉樹
c語言練手.多叉樹轉二叉樹 原理 二叉樹節點的左子樹為對應多叉樹節點的第乙個孩子,右子樹為多叉樹中它的右兄弟,以此類推 include include define m 5 多叉樹最大子數量為5 typedef struct mtree node mtree node 多叉樹結構 typedef s...
樹形dp技巧,多叉樹轉二叉樹
今天覆習樹形dp時發現一道比較古老的題,叫選課,是樹形dp的一道基礎題,也是多叉樹轉二叉樹應用的模版題 多叉樹轉二叉樹的應用非常廣泛,因為如果乙個節點的兒子太多,乙個乙個存下來不方便去查詢,並且會增加複雜度,但是這裡我們就有乙個o n 的複雜度的方法把多叉樹轉換為二叉樹,轉換成二叉樹後就更方便查詢,...
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...