zl程序教程

您现在的位置是:首页 >  后端

当前栏目

25线索二叉树的存储结构

二叉树存储 结构 25 线索
2023-09-27 14:22:14 时间

1、线索二叉树:传统链式存储仅能体现一种父子关系,不能直接得到结点在遍历中的前驱或后继。二叉链表中存在大量的空指针,利用这些空链域存放指向其直接前驱或后继的指针,则可更方便地运用某些二叉树操作算法。引入线索二叉树是为了加快查找前驱和后继的速度。
2、在N个结点的二叉树中,有N+1个空指针
在这里插入图片描述

3、在二叉树线索化时,通常规定:若无左子树,令lchild指向其前驱结点;若无右子树,令rchild指向其后继结点。还需要增加两个标志域表明当前指针域所指对象是左(右)孩子还是直接前驱(后继)
在这里插入图片描述

其中标志域含义如下:
在这里插入图片描述

线索二叉树存储结构的描述代码:
Typedef struct ThreadNode{
ElemType data; //数据元素
Struct ThreadNode *lchild,*rchild;//左右孩子指针
Int ltag,rtag; //左右线索标志

}ThreadNode,*ThreadTree;

在这里插入图片描述