typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
BiTNode *parent(BiTree T, ElemType x)
{
BiTNode *ans;
if(T == NULL)//二叉树为空
{
return NULL;
}
if(T->lchild == NULL && T->rchild == NULL)//二叉树左右子树均为空
{
return NULL;
}
else
{
//左右子树中有一个值为x,则该结点为x的父节点
if(T-lchild->data == x || T->rchild->data == x)
{
return T;
}
else
{
ans = parent(T->lchild, x);//在T的左子树中遍历
if(ans != NULL)
{
return ans;
}
ans = parent(T->rchild, x);//在T的右子树中遍历
if(ans != NULL)
{
return ans;
}
return NULL;//不存在父结点,则返回空
}
}
}
求结点x在二叉树中的双亲结点
最新推荐文章于 2023-10-29 22:13:28 发布