试题
考点

数据结构-二叉树-线索二叉树

面5笔5

如何实现线索二叉树?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

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

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

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

评论

coderpwh

2022-10-31 21:00:00

0 0

飙车去旅行

2022-01-05 22:00:00

0 0

我是一只粽子啊

2021-09-09 22:45:00

0 0

加载更多