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);
}