线索二叉树 Tread Binary Tree

一、线索的概念:

        用指向二叉树中其他结点的指针,称为线索(thread),来代替二叉树中的空链域。

        常识:n个结点的二叉树,共有2n个链域,则有除了根节点没有被lchild和rchild指向,其余的节点必然会被指到。所以空链域公有2n-(n-1)=n+1个,非空链域共有2n-(n+1) = n - 1个。

二、建立线索的规则:

       ptr代表一个结点

       1、如果结点的左儿子ptr->LChild为空,则在中序遍历中,用指向在ptr之前访问的结点的指针代替ptr->LChild。即用指向ptr的中序遍历的前驱结点的指针代替空链。

       2、如果结点的右儿子ptr->RChild为空,则在中序遍历中,用指向在ptr之后访问的结点的指针代替ptr->RChild。即用指向ptr的中序遍历的后继结点的指针代替空链。

三、线索二叉树的结构:

四、线索二叉树的基本操作及代码实现:

你可能感兴趣的:(数据结构)