线索二叉树

线索二叉树是一种特殊二叉树,通过在空链域存储遍历线索,便于O(n)时间复杂度进行遍历。本文介绍了线索二叉树的概念、遍历方法(包括前序、中序和后序),以及中序线索二叉树的初始化和线索化过程。通过线索化,可以方便地进行前驱和后继节点的查找。
摘要由CSDN通过智能技术生成

概念:

       对于二叉树而言,在一种遍历次序(前后中)里,每一个结点都有一个前驱和一个后继,这种信息叫做线索。一棵二叉树有 n+1个空链域(2n个链域,n-1个branch,2n-(n-1) = n+1 个空链域)。规定:如果一个结点的左儿子为空,就让左儿子的指针域存储前驱;如果右儿子为空,就让右儿子的指针域存储后继。具体是儿子还是线索,标个tag就行了。

       遍历一棵普通二叉树,使其n+1个空链域存储线索的过程,叫做线索化,得到的二叉树叫做线索二叉树


原因:

       前后中序遍历线索二叉树的复杂度为O(n),因为借助于线索,算法的常数因子比普通二叉树遍历算法的常数因子小,而且不需要设栈。


遍历:

       只需要找到序列中的第一个结点,依次找结点的后继直到后继为空就行了。逆序遍历的话,只要找到序列的最后一个结点,依次找结点的前驱就行了。然而,有一些结点它是有右儿子的,这样就存储不了后继线索了;有一些结点他是有左儿子的,这样就存储不了前驱线索了。怎么办?简单 ! --以当前结点为根,按遍历的性质来考虑。


下面的文字描述好像有点多,但是难以更简洁了!



(1)For 前序遍历:


后继:

       如果它的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值