樹的題目(二)

int CalcWPL(BiTree T,int d){
	static int wpl;
	if(T->lchild==NULL&&T->rchild==NULL){
		wpl+=(T->weight)*d;
	}
	if(T->lchild!=NULL)CalcWPL(T->lchild,d+1);
	if(T->rchild!=NULL)CalcWPL(T->rchild,d+1);
	return wpl;
}//調用時傳入0給d 


void release(BiTree &T){
	if(T){
		release(T->lchild);
		release(T->rchild);
		free(T);
	}
}
void delete_x(BiTree &T,int x){
	if(!T)return;
	if(T->data==x){
		release(T);
		T=NULL;
		return;
	}
	delete_x(T->lchild,x);
	delete_x(T->rchild,x);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章