二叉树:设计一个求结点x在二叉树中的双亲结点算法。

typedef struct node 
{
	int data; 
	struct node *lchild,*rchild;
} bitree;
bitree *q[20]; 
int r=0,f=0,flag=0;
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)
{
    int i;
    preorder(bt,x);
    for(i=f+1; i<=r; i++) 
   		if (q[i]->lchild->data==x || q[i]->rchild->data==x) 
		   break;
    if (flag==0) 
   		printf("not found x\n");
    else if (i<=r) 
   		printf("%c",q[i]->data); 
	else 
		printf("not parent");
}

全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务