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

“先序线索化” //递归出错,同样的方式实现中序、后序线索化二叉树却是正确的,代码如下 //先序遍历线索

发布网友 发布时间:2022-05-30 21:57

我来回答

2个回答

热心网友 时间:2023-11-23 11:50

//给你两个代码 一个错误用于启示 一个正确却需要理解-也就是你的正确改版

//错误版本:
//看下面这个结果与你的相反 而且还要返回最后一个 正确的看下一个改版!!!!
//但你可以从这个错误中得到启示!!!! 只是顺序相反了罢了 想法改过来就得
ThreadNode* PreOrderThread(ThreadTree bt)
{
static ThreadNode* pre=NULL;
if(bt != NULL) //只有不是NULL才是递归条件啊 没个结点都到这来检测是否为NULL
{
bt->lChild = pre; //bt永远指向pre 这样就构成了线索了 不过这样跟结点在最后罢了
pre = bt; //然后pre也该改变到了新的位置了 如此重复
//上面两句是 根遍历
PreOrderThread(bt->lchild); // 左子树遍历
PreOrderThread(bt->rchild); // 右子树遍历
// 一看就是先序线索了吗?根-左(根左右)-右(根左右)
}
return pre; //返回最后一个线索的结点 也就是最右边的结点 否则怎么知道呢
}

正确改版:
//由于方向相反了 我们就“右-左-根”的遍历 最后一个就是根了 也不用返回了
// 不就一切OK了

void PreOrderThread(ThreadTree bt)
{
static ThreadNode* pre=NULL;
if(bt != NULL) //只有不是NULL才是递归条件啊 没个结点都到这来检测是否为NULL
{
PreOrderThread(bt->rchild); // 右子树遍历
PreOrderThread(bt->lchild); // 左子树遍历
bt->lChild = pre; // 根遍历
pre = bt;
//怎么 没明白 呵呵 拿笔纸上写写看就明白了
//你想啊
//(1)只有根 正确
//(2)2个结点的(有根左或者有根右 两种情况) 都正确吧
//(3)3个结点(有根左右) 正确吧
//(4)现在多于3个结点的 归纳到(1)-(3) 呵呵 可以利用数学上的归纳法证明呀
//哈哈 扯淡到数学去了 反正就是这种简单的做法
}
}

就这么简单 就怕理解不了 而扯淡出一大堆代码 就像我上面的 有返回 费解易错

这和只遍历而不改变树是一个道理的
理解的话
其他的线索化 代码也这么简单 没什么的!!!

热心网友 时间:2023-11-23 11:50

*tb) // 先序线索化二叉树先序实现先序遍历
{
TBTNode *p = tb;
TBTNode *q;
while(p != tb) //就是这个地方有错误~~
{
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中控是什么意思 抖音直播中控是什么意思 iphone通讯录群组设置 如何更改iphone通讯录拨打电话时总是出现两个称呼 我的电脑是Win8.1update老硬盘有坏道,最近新买了一个硬盘是希捷的1TB混 ... 使命召唤:黑色行动2常见问题 GMA 4500M技术特性 电脑显示器的配置电脑的基本配置有哪些 梦见对象把门钥匙和我分手 梦见对象还我门钥匙要和我分手的预兆 公益性捐赠税前扣除资格 用中序,先序,后续线索化二叉树,c实现 9、 一棵左右子树均不为空的二叉树在后序线索化后(不带头结点的线索化),其空指针域数为 Java课程设计 构造先序和后序线索二叉树 ()的遍历仍需要栈的支持? 1.前序线索树 2.中序线索树 3.后序线索树 原因?答案是C 这是猫头鹰吗?还是鹰?谁能给我说说是什么种类! 邮政扫码机4660怎么拆机换屏 烟草专用的扫码机突然停用了 chiki chiki的歌词是什么意思?? "为了不哭大声笑"是哪首歌的歌词 2007年1月到4月最新的电影 小眼睛,亮晶晶,看一看,说一说,写一写,是什么意思? 与鱼类有关的生字? 带鱼的字与什么有关? 公文表达以什么为主什么和什么为辅 乡镇街道在公文中怎么表述 公文的表达方式有哪些 如果不这样做,公文怎么表述 2个月零10天这样公文表述是否正确 三国 元神技能都有什么? 哪个好技能? QQ三国元神成长属性怎么样提高 求教,关于后序线索化二叉树建立及遍历 找某*P结点中序线索二叉树在前序下的后继结点 芮的汉字释义 苹果4s相机翻转怎么调正照片 如果仓鼠睁着眼睛一会动一下会怎么样 如果仓鼠不抢食物是不是就不会打架了? 如果给仓鼠抓到会,怎样? 仓鼠爱打架吗?仓鼠打架怎么办? 古希腊流传至今的最早的文学作品 偷渡回来被警方抓到怎么办 牛字变形假斯文(打一字) 请问哪位有毕加索的牛的变形全过程的图? 哪些字作偏旁时其形态、大小、笔画发生了变化? “钱塘江”的资料 从四明山丹山赤水景区自驾前往鹿亭中村要多久 宁波中村要门票吗 鹿亭中村到丹水赤山多少公里? 余姚中村村从余姚到鹿亭中村怎样走 顺治二年(1645),清兵南下,越城已降,黄宗羲奉太夫人避居鹿亭中村(见《黄梨洲先生年谱》)。 余姚鹿亭中村到天下玉苑怎么走