第006课线索二叉树与哈夫曼树;教学目录;1、线索二叉树的概念
采用某种方法遍历二叉树的结果是一个结点的线性序列。
修改空链域改为存放指向结点的前驱和后继结点的地址。
这样的指向该线性序列中的“前驱”和“后继”的指针,称作线索(thread)。
创建线索的过程称为线索化。
线索化的二叉树称为线索二叉树。
显然线索二叉树与采用的遍历方法相关,有先序线索二叉树、中序线索二叉树和后序线索二叉树。
线索二叉树的目的是提高该遍历过程的效率。;在结点的存储结构上增加两个标志位来区分这两种情况:;typedefstructnode
{ElemTypedata; //结点数据域
intltag,rtag; //增加的线索标记
structnode*lchild; //左孩子或线索指针
structnode*rchild; //右孩子或线索指针
}TBTNode; //线索树结点类型定义;2、线索化二叉树;CreatThread(b)算法:对以二叉链存储的二叉树b进行中序线索化,并返回线索化后头结点的指针root。
Thread(p)算法:对以*p为根结点的二叉树子树的中序线索化。;p总是指向当前线索化的结点。
pre作为全局变量,指向刚刚访问过的结点。
*
原创力文档

文档评论(0)