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

线索二叉树中关于线索的问题8

发布网友 发布时间:2023-09-13 17:47

我来回答

1个回答

热心网友 时间:2024-12-12 03:08

我觉得你主要是不清楚pre指向的是什么。

我的数据结构书是严蔚敏版的,书上是这么说的:pre始终指向刚刚访问过的结点,若指针root指向当前访问的结点,则pre指向它的前续。
说的有点抽象。其实主要就是要清楚何时改变pre的值,“pre始终指向刚刚访问过的结点”就是说访问完一个结点后,就改变pre的值。
具体的思路是这样:首先书上建立线索的代码是一个中序遍历过程,其访问顺序分三步:左子树->本身结点->右子树。其中访问左子树就是指调用函数Inthread(root->Lchild)。任何一次访问结点的操作必然处在这三步中的第二步,因为第一步又可以分为三步。可见pre值的修改应该在第二步之后,且在第三步之前,即在Inthread(root->Rchild)之前。正如代码中一样。
另外要注意第一次调用Inthread前要先给pre赋值。

1.此代码中的root可能指向的是二叉树中的任意一结点,由于任意一结点可以看做一个子树的根节点,所以可以理解为root指向二叉树本身或其子树的根节点。
root->Lchild=pre这个代码是说让当前结点的左子树指向当前结点的前驱(pre),即建立一个前续索引。

2.此代码主要是判断是否要给pre建立一个后续线索。那么建立后续线索的前提条件是要右结点为空,这就是if中的判断。
pre->Rchild=root就是给pre建立一个后续索引。pre是root的前续,反过来root就是pre的后续。

3.前续和后续结点的指向通过pre与root互为前续后续的关系实现的。以首结点为例的话比较特殊,因为如果root指向首结点,那么这就是第一次调用,在调用前要预先给pre赋值。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样备份iPhone的照片? 奇迹的战士怎样加点? 奇迹私服战士8W点的怎么加点PK厉害 房屋装修建材的选购家装建材种类有哪些 家装建材都包含什么 家装应该买什么东西 劓刑简介 电信手机停机保号怎么办理? 定胆定胆方法 3d定胆方法有哪些? 笔记本电脑开机黑屏怎么办?419 关于线索二叉树的问题(很急)~~~~~~ 线索二叉树相关问题 秦桧:为什么岳飞必须死,啥时候国家利益都不1 新科鲁兹仪表盘提示TCS以关闭什么意思?TCS又是什么东西?...6 秦桧岳飞为什么必须死简直太真相195 雪佛兰新科鲁兹TCS每次发动汽车后是默认开启的吗?1 沈石溪的作品读后感532 雪地寻踪读后感100字153 大山猫历险记读后感5005 清洗金属零件高手请进1 《大山猫》读后感800字32 含 正己烷 污水怎么处理1 win7提示不兼容MSCOMCT2.OCX,注册不了,请问你知道怎么解决吗? 为什么month的复数是加s而不是加es123 笔记本电脑开机黑屏是怎么回事350 山东国家田径二级运动员名单 (亚洲人、田径)求历史上所有亚洲人获得奥运会、世锦赛田径项目...7 2012伦敦奥运会中国田径队选手名单5 版本为V02.61(C)Copyright 1985-200...13 怎样让笔记本电脑开机黑屏?199 C语言数据结构中的 线索二叉树问题 请教一道关于线索二叉树的问题9 为什么有些以f结尾的名词是直接加s的?比如roofs21 西湖横店旅游行程提问 昨晚半夜感觉右胳膊肘特别疼,早上起来不疼什么原因 Win7提示Msflxgrd.OCX不能注册或Msflxgrd.OCX错误如何解决? 昨晚半夜感觉右胳膊肘特别疼,早上起来不疼什么原因 谁能告诉我正甲烷是不是跟正乙烷一样的有毒。。。 工厂是否可用... 最近突然胳膊肘疼,不知道是怎么回事。每到晚上就疼,像针扎一样...1 白电油,请知道的解释一下下5 我老公右胳膊老疼,白天还好,晚上疼得睡不着。他说胳膊肘很疼,...3 正乙烷和酒精怎么区分?工厂告诉我们用的是无水乙醇。我怀疑是正...1 女士右胳膊肘疼是怎么回事162 电子厂存在的环境危害有哪些2 油漆稀料的最大使用行业和一般使用行业?10 红米手机为什么在优酷,土豆,腾讯视频里面下的视频在文件管理里面找不到... 建行信用卡邮过来未领取又退回去之后,打电话给客服再邮一次为什么不是原... 工行信用卡被退到发卡银行 皮肤总是不知不觉中会出现青紫瘀斑(皮下出血)是怎么回事呢