线索二叉树
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RTag=
lchild
指向前驱和后继结点的指针叫做线索。 以这种结构组成的二叉 链表作为二叉树的存储结构,叫做线索链表。对二叉树以某种 次序进行遍历并且加上线索的过程叫做线索化。线索化了的二 叉树称为线索二叉树。
线索化二叉树 (Threaded Binary Tree)
线索 (Thread)
增加 Pred 指针和 Succ 指针的二叉树
线索二叉树
二叉树中容易找到结点的左右孩子信息,但该节 点在某一序列中的直接前驱和直接后继只能在某种遍 历过程中动态获得; 先依遍历规则把每个节点某一序列中对应的前驱 和后继线索预存起来,这叫做“线索化”;
意义:从任一结点出发都能快速找到某一序列中的前 驱和后继,且不必借助堆栈。
把结点中指向前驱结点和后继结点的指针称为线索。 在二叉树的结点上加上线索的二叉树称作线索二叉树。 对二叉树以某种方法(如前序、中序或后序方法)遍 历使其变为线索二叉树的过程称作按该方法对二叉树 进行的线索化。
A C E H F
(c) 中 序线 索 二 叉树
(d) 后 序线 索 二 叉 树
线索化二叉树及其二叉链表表示
LeftChild data RightChild LeftThread RightThread
LeftThread=0, LeftThread=1, RightThread=0, RightThread=1, LeftChild为左子女指针 LeftChild为前驱线索 RightChild为右子女指针 RightChild为后继指针
二叉树
中序线索二叉树
前序线索二叉树
后序线索二叉树
第6章 树和二叉树 ABDGCEHF
A B D G (a) 二 叉 树 E H C F D G B E H A C F NULL
(b )先 序线 索 二 叉 树
DGBAEHCF
B D NULL G
A C E H F
GDBHEFCA
B D NULL NULL G
第6章 树和二叉树
一、将二叉树遍历一遍,在遍历过程中便可 得到结点的前驱和后继,但这种动态访问浪 费时间; 二、充分利用二叉链表中的空链域, 将遍历 过程中结点的前驱、 后继信息保存下来。
wk.baidu.com
第6章 树和二叉树 0 lchild域指示结点的左孩子 LTag=
1 lchild域指示结点的遍历前驱
0 rchild域指示结点的右孩子 1 rchild域指示结点的遍历后继 Ltag Data Rtag rchild