线索二叉树

中序线索二叉树

中序线索二叉树 先使用中序遍历二叉树得到数组

根据数组中每个结点的前后,让没有子结点的指针指向数组中的前后结点

其他线索二叉树

前序线索二叉树就是把数组改成前序遍历得到的数组 后序线索二叉树同理

二叉树线索化

二叉树线索化的实质就是遍历一次二叉树 先序线索二叉树找不到前驱 后序线索二叉树找不到后继 除非使用三叉链表或者从根开始遍历

中序线索二叉树

  1. 设置全局变量pre,用于指向刚刚访问过的结点(p的前驱结点)
  2. 指针p指向正在访问的结点
  3. 检查p的左指针是否为空,为空就将它指向pre
  4. 检查pre的右指针是否为空,为空就将它指向p

找前驱后继结点参考仓库代码

先序线索二叉树

线索化参考仓库代码 先序线索二叉树找先序后继 先序线索二叉树找先序前驱 如果使用三叉链表(有指向父结点的指针)可以找到,不然找不到 三叉链表找先序前驱

后序线索二叉树

线索化参考仓库代码 后序线索二叉树找后序前驱 后序线索二叉树找后序后继 和先序找前驱一样,可以使用三叉链表找到后继 三叉链表找后序后继

最后一个结点rchildlchild需要进行处理%