データ構造-順を通して中を巡回して二叉の木を作成します.

808 ワード

一.アルゴリズム思想
前の順序と中の順序を通して、これまで二叉の木を創建してきましたが、皆さんは全部手作りの方法で押したことがあると信じています.だから、ここのアルゴリズム思想は省略されました.
二.ソースコード
BiTreeNode CreateBt(ElementType A[],ElementType B[],int PreL,int PreR,int InL,int InR) {
	//A,B                ,      1  
	//PreL,PreR,InL,InR     ,                
	BiTreeNode BT;
	BT = new BiTreeStruct; //     
	BT->data = A[PreL]; int i,llen, rlen;
	for (i = InL; B[i] != BT->data; i++);//              
	llen =i-InL; //     
	rlen =InR-i; //     
	//      ,           
	if (llen) //       
		BT->Lchild = CreateBt(A, B, PreL + 1, PreL + llen, InL, InL + llen - 1);
	else
		BT->Lchild = NULL; //     

	if(rlen) //       
		BT->Rightchild = CreateBt(A, B, PreR-rlen,PreR,InR-rlen+1,InR);
	else
		BT->Rightchild = NULL; //     
	return BT; //     
}