校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 线索二叉树
题目

如何实现线索二叉树?

解答

创建线索二叉树和创建普通的二叉树(二叉链表)相似,我们同样约定采用前序遍历的方式进行创建树结点。

如何线索化二叉树呢?我们采用中序遍历二叉树访问每一个树结点的时候,我们只知道当前结点,如何知道前驱结点呢?我们能否考虑将刚刚访问的结点(pre)保存下来,每次访问树结点的时候,发现左孩子结点为NULL,就将其线索化!它的前驱结点是不是pre结点呢?!tree->lchild = pre;那个刚刚访问的结点 (pre)的右孩子结点 为NULL,那么将其线索化 pre 它的后继结点是不是当前结点呢?!pre->rchild = tree;具体详细代码请看代码实现。

下面是一张简陋的二叉线索树的图,箭头方向 代表该结点前驱和后继结点。红色箭头表示 原来的孩子结点都不为空,直接就是自己的前驱或者后继结点。黑色箭头表示的通过线索添加的前驱后驱结点,都是孩子结点为NULL 而添加的。

C 3条回复 评论
coderpwh

有没有大佬带带小白

发表于 2022-10-31 21:00:00
0 0
飙车去旅行

刚接触Redis,太有用了!!

发表于 2022-01-05 22:00:00
0 0
我是一只粽子啊

比之前听的课更好懂

发表于 2021-09-09 22:45:00
0 0