二叉树线索化的思想是什么?

如题所述

线索二叉树就是
使用的对象:树节点中没有使用的n-1个空指针(n个树节点,空指针永远都是n+1个,自己推下)。
运行的原则:某种深度遍历顺序——先序,中序,后序
过程:按照中序(当然也可以是其他的遍历)的前驱后继关系,若p的左子树为空,则左子树指向p的中序前驱,若p的右子树为空,则p的右子树节点指向p的后继,若是子树都有,就不用捣腾了。第一个节点的左子树为空(此节点一定是叶节点,而且没前驱,所以是空),最后一个节点的右子树也是空。
数据结构:在树节点的结构是(data,*lchild,*rchild)线索树的节点是(data,*lchild,*rchild,ltag,rtag),tag为1表示线索数的节点,为0标识树节点。
目的:方便找到树在某种遍历的条件下前驱和后继。不是用来遍历的哈
注意的点:只用中序线索树可以很完美的达到这个效果,前序线索树在计算前驱的时候会牵扯到自己的父节点,就要使用栈来找,这样和遍历查找没区别,同理,后序线索树找后继会比较麻烦。

话说,要点基本就这样了。
细节的点,比如说为什么n+1啊,为什么前序后序不完美啊,这些一边就考个知道,而且推理是很快的,所以呢,考试的话,就照着我说的这几个点就ok了,主要是要会画,还有就是中序查找的实现。
中序实现给你一个要点:
找前驱:向左找第一个rtag为1的就是它的前驱了。
因为在中序中,所有的内节点(非叶节点)的前驱和后继必然是一个叶节点。
要是记不住算法,记住这点临场写也够了,前提是老兄您在之前弄明白我的要点的意义。

参考资料:原创,转载请写明,感谢L_Hier就好

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-21
做任务

二叉树线索化的思想是什么?
线索二叉树是对普通二叉树的一种优化,它利用树节点中未使用的指针空间来存储线索信息,以方便查找树节点的前驱和后继。2. 线索二叉树的构成 每个树节点包含数据和四个指针:左子树、右子树、左线索、右线索。当节点不存在左子树时,左线索指向该节点的中序前驱;当节点不存在右子树时,右线索指向该节...

二叉树线索化的思想是什么?
线索二叉树就是 使用的对象:树节点中没有使用的n-1个空指针(n个树节点,空指针永远都是n+1个,自己推下)。运行的原则:某种深度遍历顺序——先序,中序,后序 过程:按照中序(当然也可以是其他的遍历)的前驱后继关系,若p的左子树为空,则左子树指向p的中序前驱,若p的右子树为空,则p...

怎么线索二叉树?
(2)线索化:使二叉链表中结点的空链域存放以某种次序遍历得到的前驱或后继信息的过程称为线索化。(4)线索二叉树:加上线索的二叉树称为线索二叉树。

如何实现二叉树的线索化
建立线索二叉树,或者说对二叉树线索化,实质上就是遍历一棵二叉树。在遍历过程中,访问结点的操作是检查当前的左,右指针域是否为空,将它们改为指向前驱结点或后续结点的线索。为实现这一过程,设指针始终指向刚刚访问的结点,即若指针指向当前结点,则指针指向它的前驱,以便设线索。另外,在对一颗二叉...

线索化2.二叉树的中序线索化
二叉树的中序线索化是一种将遍历过程具体化的技术,它与中序遍历算法相似,关键在于通过建立结点间的线索来记录遍历路径。在这个过程中,我们引入了两个指针pre和p,pre始终指向已访问的结点,初始值为NULL,而p指向当前访问的结点。结点*pre是*p的前趋,*p是*pre的后继。具体实现的算法如下,首先定义...

在不同的线索化二叉树中,空余指针个数分别是多少?
线索化二叉树的目的是通过线索代替空指针,以便能够遍历树中的所有节点,包括那些没有子节点的节点。在遍历过程中,第一个节点没有前驱,因此其左指针为空;最后一个节点没有后继,因此其右指针为空。据此,可以得出在不同线索化二叉树中,空余指针的个数通常是两个。

线索二叉树是一种什么结构
线索二叉树是一种特殊的二叉树结构,它在标准的二叉链表基础上增加了线索信息。在标准的二叉链表中,每个结点有三个指针:左指针、右指针和父指针。线索二叉树则利用这些空指针域来存储额外的前驱和后继指针信息,使得即使在非递归方式下也能访问树中的结点。这种结构的关键在于线索化,即在遍历二叉树的...

线索二叉树的特点是什么
不知道是否你要的答案 二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一个结点无后继)。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只有在遍历中得到。线索二叉树的优点是便于在中序下查找前驱结点和后继结点。

线索二叉树是一种什么结构?
线索二叉树是一种物理结构。用二叉表中空指针域,存放指向该结点在某种遍历次序下的前驱与后续节点的指针称为线索,这种加上了线索的二叉链表称为线索链表,相应的二叉树也称为线索二叉树,根据性质不同分别有前序、中序、后序等线索二叉树。线索化具体实现 以中序二叉树的线索化为例,线索化的具体...

什么是线索二叉树的线索数?
线索二叉树的线索数是指利用二叉树的空链域加上线后,每个节点所具有的指向其父节点的指针数。根据百度百科资料显示,线索二叉树的线索数是指利用二叉树的空链域加上线后,每个节点所具有的指向其父节点的指针数。在二叉树中,除了根节点外,每个节点都有父节点,其与父节点的连线即为一条边。若二叉...

相似回答