永发信息网

如何建立并遍历二叉树中节点为X的节点,如果找到返回其双亲节点的值否者返回0

答案:2  悬赏:50  手机版
解决时间 2021-12-17 19:44
如何建立并遍历二叉树中节点为X的节点,如果找到返回其双亲节点的值否者返回0
最佳答案
输入数据是整形的,每输入一个数,回车一次,子树为空输入0.以根左右的方式创建树。输入格式如:
10
21
0
0
51
0
0
该程序已测试,得到正确结果。

#include "stdlib.h"

typedef int Element;

struct Tree
{
Element date;
struct Tree *left, *right;
};

void CreateTree(struct Tree **r);
void PrintTree(struct Tree *r);
int ParentValue(struct Tree *r, int x);
struct Tree *Find2(struct Tree *r , struct Tree **p, int x);

int main()
{
struct Tree *r;

CreateTree(&r);
PrintTree(r);
Element x=1;
printf("\nPlease input the data you want to find:");
scanf("%d",&x);
while (x!=0)
{
int v=ParentValue(r,x);
if (v != 0)
{
printf("\nfind %d",v);
}
else
{
printf("\nnot find!");
}
printf("\nPlease input the data you want to find:");
scanf("%d",&x);
}

return 0;
}

void CreateTree(struct Tree **r)
{
Element ch;
scanf("%d",&ch);
if (ch == 0)
{
*r = NULL;
return ;
}
(*r) = (struct Tree *)malloc(sizeof(struct Tree));
(*r)->date = ch;
CreateTree( ( &(*r)->left));
CreateTree( &((*r)->right));
}
void PrintTree(struct Tree *r)
{
if (r == NULL)
{
return ;
}
printf("%d ",r->date);
PrintTree(r->left);
PrintTree(r->right);
}

int ParentValue(struct Tree *r, Element x)
{
struct Tree *p;
p = NULL;
Find2(r, &p, x);
if (p == NULL)
{
return 0;
}
else
{
return p->date;
}
}

struct Tree *Find2(struct Tree *r , struct Tree **p, int x)
{
if (r == NULL)
{
return NULL;
}
if (r->date == x)
{
return r;
}
struct Tree *temp;
temp = Find2(r->left, p, x);
if (temp != NULL)
{
*p = r;
return NULL;
}
temp = Find2(r->right, p, x);
if (temp != NULL)
{
*p = r;
return NULL;
}
return NULL;
}
全部回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
野爹是什么意思?
求类似战神世界2的网页游戏。就是那种不复杂
张伟健版的<韦小宝>里,总说"$#%#@(^%...
神逸之争是什么?
游戏王三幻魔
华为手机老是出反馈错误报告怎么办
全国有几个名字叫张瀚文
兴隆大家庭和万达百货哪个好?我去面试了两家
pinyinputstuatus什么意思
关于小雪优美句子
学科目二如何看车正
三洋洗衣机维修答疑;怎样给洗衣机加注润滑油
儿童加油加油摩托车图片和价格
什么叫夭老仓正月25
女性下面毛很多,阴唇很厚,看不到阴蒂这正常
推荐资讯
单选题“绿色能源”是指释放出能量或能量转化
为什么部落冲突不弹出对话窗口
惠阳区房产管理局第二房地产交易所办公地址在
晓琴烤饼店地址在什么地方,想过去办事
有门诊报销的保险吗
安民社区居委会地址在哪?我要去那里办事
瓦石村地址好找么,我有些事要过去
小东为探究“光对鼠妇生活的影响”,做了如下
比较实数或代数式的值的大小,常用什么法
长5分米,宽3分米的长方形,它的周长是______
HPDeskjet1000打印机怎么安装
谁知道木子是哪部小说的主人公啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?