引入线索二叉树的目的是
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引入线索二叉树的目的是
引入线索二叉树的目的是找一个节点的前驱后继的时候,比非二叉线索树方便快捷。
按照某种谝历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。
当用二叉链表作为二叉树的存储结构时,因为每个结点中只有指向其左,右儿子结点的指针,所以从任一结点出发只能直接找到该结点的左、右儿子。
在一般情况下靠它无法直接找到该结点在某种遍历序下的前驱和后继结点。
如果在每个结点中增加指向其前驱和后继结点的指针,将降低存储空间的效率。
我们可以证明:在N个结点的二叉链表中含有N加1个空指针。
因为含N个结点的二叉链表中含有个指针,除了根结点,每个结点都有一个从父结点指向该结点的指针,因此一共使用了N减1个指针,所以在N个结点的二叉链表中含有N 加1个空指针。
因此可以利用这些空指针,存放指向结点在某种遍历次序下的前驱和后继结点的指针。
这种附加的指针称为线索,加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树。
根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。