问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

引入二叉线索树的目的是( )

发布网友 发布时间:2022-04-22 19:14

我来回答

3个回答

懂视网 时间:2022-04-22 23:35

引入线索二叉树的目的是找一个节点的前驱后继的时候,比非二叉线索树方便快捷。按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。

  当用二叉链表作为二叉树的存储结构时,因为每个结点中只有指向其左、右儿子结点的指针,所以从任一结点出发只能直接找到该结点的左、右儿子。在一般情况下靠它无法直接找到该结点在某种遍历序下的前驱和后继结点。如果在每个结点中增加指向其前驱和后继结点的指针,将降低存储空间的效率。我们可以证明:在n个结点的二叉链表中含有n+1个空指针。因为含n个结点的二叉链表中含有个指针,除了根结点,每个结点都有一个从父结点指向该结点的指针,因此一共使用了n-1个指针,所以在n个结点的二叉链表中含有n+1个空指针。因此可以利用这些空指针,存放指向结点在某种遍历次序下的前驱和后继结点的指针。这种附加的指针称为线索,加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(ThreadedBinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。

热心网友 时间:2022-04-22 21:00

找一个节点的前驱后继的时候,比非二叉线索树方便快捷

两次

没有高度,没法算

热心网友 时间:2022-04-22 22:35

建立线索二叉树,或者说对二叉树线索化,实质上就是遍历一颗二叉树。在遍历过程中,访问结点的草所是检查当前的左,右指针域是否为空,将它们改为指向前驱结点或后续结点的线索。为实现这一过程,设指针pre始终指向刚刚访问的结点,即若指针p指向当前结点,则pre指向它的前驱,以便设线索。
另外,在对一颗二叉树加线索时,必须首先申请一个头结点,建立头结点与二叉树的跟结点的指向关系,对二叉树线索化后,还需建立最后一个结点与头结点之间的线索。
下面是建立中序二叉树的递归算法,其中pre为全局变量。
bithrnodetype
*pre;
bithrtree
inorderthr(bithrtree
t)
{
/*中序遍历二叉树t,并将其中序线索化,pre为全局变量*/
bithrtree
head;
head=(bitthrnodetype
*)malloc(sizeof(bithrtype));/*设申请头结点成功*/
head->ltag=0;head->rtag=1;/*建立头结点*/
head->rchild=head;/*右指针回指*/
if(!t)head->lchild=head;/*若二叉树为空,则左指针回指*/
else{head->lchild=t;pre=head;
inthreading(t);/*中序遍历进行中序线索化*/
pre->rchild=head;
pre->rtag=1;/*最后一个结点线索化*/
head->rchild=pre;
};
return
head;
}
void
inthreading(bithrtree
p)
{/*通过中序遍历进行中序线索化*/
if(p)
{inthreading(p->lchild);/*左子树线索化*/
if(p->lchild==null)/*前驱线索*/
{p->ltag=1;
p->lchild=pre;
}
if(p->lchild==null)/*后续线索*/
{p->rtag=1;
p->rchild=pre;
}
pre=p;
inthreading(p->rchild);/*右子树线索化*/
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 车辆保险中的“不计免赔”是怎么回事? 车险不计免赔包括哪些 不计免赔车险如何计算 车险不计免赔是什么 车辆不计免赔什么意思 车险中不计免赔险是什么意思? 急呀!长文档的排版,这步怎么做呀? 怎样将Word文档的标点符号设为中文字体? 宋体标点符号全角,半角一样吗 为什么在EXCEL中输入身份证号码会自动变成数字和字母? excel表格中输入身份证号为什么数字会自动变零 为什么excel输入身份证号码会改变数字? AndroidStudio如何配置NDK/JNI?AndroidStudio怎么调用so动态链接库 android studio怎么添加依赖 android studio 怎么关联library android studio 怎么使用 怎么用android studio 求另一张情头古风 图如下 android studio里面怎么设置超链接 纯新手 android studio 怎么运行项目? 支付宝能用于哪些软件实行支付? 支付宝能用于哪些软件实行支付 支付宝能使用吗 支付宝能做什么·? 支付宝能炒股吗 支付宝账户能放5000万吗 ps cs5怎么卸载不了? 有谁可以告诉我,在C语言中二叉线索树是什么??引入的目的又是什么 皇汉堂美白丸央视曝光 日本皇汉堂美白丸好用吗?有没有副作用? 皇汉堂美白丸怎么吃 皇汉堂美白丸效果怎么样 什么牌子美白丸好? 皇汉堂全身美白丸 浣犲ソ鍚 是什么意思啊? 哪国语言?知道的请告诉哈! 急!吃过皇汉堂美白丸 或者 养生堂Vc和Ve 的进!!! 请问有人用过皇汉堂全身美白丸吗? 皇汉堂美白丸,要吃多久才能见效?有没有副作用? 企业职工医保每月交多少费 美白丸,能用不? 现在职工医保一个月交多少钱