线索二叉树与哈夫曼树.pptx

第006课线索二叉树与哈夫曼树;教学目录;1、线索二叉树的概念

采用某种方法遍历二叉树的结果是一个结点的线性序列。

修改空链域改为存放指向结点的前驱和后继结点的地址。

这样的指向该线性序列中的“前驱”和“后继”的指针,称作线索(thread)。

创建线索的过程称为线索化。

线索化的二叉树称为线索二叉树。

显然线索二叉树与采用的遍历方法相关,有先序线索二叉树、中序线索二叉树和后序线索二叉树。

线索二叉树的目的是提高该遍历过程的效率。;在结点的存储结构上增加两个标志位来区分这两种情况:;typedefstructnode

{ElemTypedata; //结点数据域

intltag,rtag; //增加的线索标记

structnode*lchild; //左孩子或线索指针

structnode*rchild; //右孩子或线索指针

}TBTNode; //线索树结点类型定义;2、线索化二叉树;CreatThread(b)算法:对以二叉链存储的二叉树b进行中序线索化,并返回线索化后头结点的指针root。

Thread(p)算法:对以*p为根结点的二叉树子树的中序线索化。;p总是指向当前线索化的结点。

pre作为全局变量,指向刚刚访问过的结点。

*

文档评论(0)

1亿VIP精品文档

相关文档