typedef struct BiTNode
{
datatype data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree *q[20];
int r=0,flag=0;
//先序遍历看判断当前根节点是否存在左右孩子,是否存在x;
void preorder(BiTree *bt,char x)
{
if(bt!=0&&flag==0)
{
if(bt->data==x)
{
flag=1;
return;
}
else
{
r=(r+1)%20;
q[r]=bt;
preorder(bt->lchild,x);
preorder(bt->rchild,x);
}
}
}
void parent(BiTree *bt,char x)
{
preorder(bt,x);
for(int i=1;i<=r;i++)
{
if(q[i]->lchild->data==x||q[i]->rchild->data==x)
{
break;
}
}
if(flag==0)
{
cout<<"not found"<<endl;
}
else if(i<=r)
{
cout<<bt->data;
}
else
{
cout<<"not parent";
}
}
求一个结点x在二叉树中的双亲结点
最新推荐文章于 2023-09-08 17:23:06 发布