69 二叉树的线索化实现
二叉树的线索化实现(一)
-
什么是线索化二叉树?
- 将二叉树转换为双向链表的过程(非线性->线性)
- 能够反映某种二叉树的遍历次序(结点的先后访问次序)
- 利用结点的right指针指向遍历中的后继结点
- 利用结点的left指针指向遍历中的前驱结点
-
如何对二叉树进行线索化?
思维过程 :线索化能够反映遍历次序→线索化算法必然与遍历算法相关→如何在遍历时记录结点间的访问次序→使用队列(先进先出)→遍历结束后,队列记录了访问次序→循环访问队列,连接队列中的结点
-
二叉树的线索化
-
目标
- 新增功能函数traversal(order,queue)
- 新增遍历方式BTTraversal::LevelOrder
- 新增公有函数BTreeNode* thread(BTTraversal order)
- 消除遍历和线索化的代码冗余(代码重构)