鹰击长空 鱼翔浅底-现代爱国诗词
2023年4月9日发(作者:竹子国画)
建树的⼏种常⽤⽅法
⽅法⼀:
此⽅法适⽤条件:
1.当我们遍历这颗树时只需要从⽗节点查找到⼦节点,不需要从⼦节点查找到⽗节点.
2.所建树为⼀颗⼆叉树
实现代码:
classTree{
intvalue;//代表该点的权值
intleft_son;//左⼉⼦编号
int春暖花又开 电视剧 right_son;//右⼉⼦编号
intleftSid睑组词语 e_value;//连接左⼉⼦的边的权值
intrightSide_value;//连接右⼉⼦边的权值
}
根据题⽬描述进⾏输⼊.
如依次输⼊节点编号节点权值左⼉⼦编号右⼉⼦编号连接左⼉⼦的边的权值连第1036章人生得意须尽欢 接右⼉⼦边的权值
f长篇睡前故事大全 or(inti=1;i<=n;i++)//n代表节点的个数
{num=t();
tree[num玉楼春欧阳修译文 ].value=t();
tree[num].left_son=t();
.......
}
⽅法⼆:
此⽅法适⽤条件:
1.当我们遍历这颗树时只需要从⽗节点查找到⼦节点,不需要从⼦节点查找到⽗节点.
2.此⽅法弥补了⽅法⼀的⼀个不⾜,⽅法⼀只适⽤于⼆叉树,不适⽤于有多个⼦节点的树,⽽此⽅法可以可以有多个溢美之词的意思 ⼦节点
实现代码:
voidadd(inta,intb)古诗文网古诗文网 {//表⽰a为⽗b为⼦
edge[邹忌讽齐王翻译全解 cnt]=b;
ne[cnt]=last[a];
last[a]=cnt++;
}
相信看到这代码有点晕,当初我也是,看看下⾯的查找的过程
我们在看看它的储存结构,我们按输⼊的顺序给节点排队,假设存在这样⼀颗树
数字代表输⼊的顺序,我们展⽰⼀下树右边是如何联系起来的(cnt代表的是输⼊顺序并不是点真正的编号,edge[cnt]才是点真正的编号)
故可得查询代码
for(inti=last[a];战战兢兢的意思 i>=1;i=ne[i])
持续更新!
更多推荐
建树
发布评论