中序线索二叉树

文章都以中序二叉树为例子

我们对二叉树的遍历,一般是通过递归的方式来实现的.而递归耗费的资源多.

这里就有先辈提出问题:是否能用另外的方式来遍历二叉树,从而达到节省资源的目的.比较暴力的办法,就是在每个结点添加 pre(前驱) 和 next(后继)两个指针,形成链表的结构.

 

 上图为例,任给一个结点(一般是a),我们就可以通过指针pre找到链表的首字母d.再通过指针next,一个个将结点:dbeac打印出来.

再此基础上,有些天才就想出来了更巧妙的办法来节省空间(当然这样也增加了我们学习的难度,哈哈),他们觉得增加pre,next太浪费空间了,而我们知道,n个结点的二叉树,它是有n+1个空指针.把这些空指针用来存放原本pre,next存放的信息,就可以节省空间了.

这就是我们要学的线索二叉树.

对每个结点,我们这么处理:if(lchild==null){lchild=pre}  if(rchild==null){rchild==next} 

这样,我们就用原先的空闲空间来存储pre,next,不需要额外开辟内存空间存储pr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值