一、线索二叉树应用案例应用案例说明:将下面的二叉树,进行中序线索二叉树,中序遍历的数列为}{8,3,10,1,14,6}思路分析:中序遍历的结果:{8,3,10,1,14,6}说明:当线索化二叉树后,Node节点的属性left和right,有如下情况:(1)left:指向的是左子树,也可能是指向的前驱节点。比如①节点left指向的左子树,而⑩节点的left指向的就是前驱节点。(2)right指向的是右子树,也可能是指向后继结点,比如①节点right指向的是右子树,而⑩节点的right指向的是后继节点。代码实现publicclassThreadedBinaryTreeDemo{publicsta
二叉树遍历的几种方法存储结构:typedefcharElemType;typedefstructBiTNode{ElemTypedata;structBiTNode*lchild,*rchild;}BiTNode;遍历树的遍历顺序是相对父结点来说的。先序遍历:先访问根结点,然后分别先序遍历左子树、右子树。递归先序:voidPreOrderTraverse(BiTreebt){/*最简单的Visit函数:Visit(ElemTypee){printf(e);}*/if(bt){Visit(bt->data);PreOrderTraverse(bt->lchild);PreOrderT
线索二叉树利用空指针域来真存放结点的前驱和后继信息定义:前驱与后继:在二叉树的先序、中序或后序遍历序列中两个相邻的结点互称为~线索:指向前驱或后继结点的指针称为~线索二叉树:加上线索的二叉链表表示的二叉树叫~线索化:对二叉树按某种遍历次序使其变为线索二叉树的过程叫~实现:在有n个结点的二叉链表中必定有n+1个空链域在线索二叉树的结点中增加两个标志域(0指结点,1左前右后)ltag:若ltag=0,lchild域指向左孩子;若ltar=1,lchild域指向其前驱rtag:若rtag=0,rchild域指向右孩子;若rtag=1,rchild域指向其后继例如:遍历中序线索二叉树在中序线索二叉树中