void DeleteTree(BiTree T)
{
if(T)
{
DeleteTree(T->lchild);
DeleteTree(T->rchild);
free(T);
}
}
void Search(BiTree T,ElemType x)
{
SqQueue Q;
if(T)
{
if(T->data==x)
{
DeleteTree(T);
return;
}
InitQueue(Q);
EnQueue(Q,T);
while(!IsEmpt(Q))
{
DeQueue(Q,p);
if(p->lchild)
if(p->lchild->data==x)
{
DeleteTree(p->lchild);
p->lchild=NULL;
}
else
EnQueue(Q,p->lchild);
if(p->rchild)
if(p->rchild->data==x)
{
DeleteTree(p->rchild);
p->rchild=NULL;
}
else
EnQueue(Q,p->rchild);
}
}
}