【二十三】线索化二叉树

1、提出问题

在一些项目中需要频繁的遍历二叉树,但是二叉树的遍历比单链表的遍历复杂多了,并且递归总是会有额外开销。。。

那有没有一种方法,能像链表那样方便的快速遍历二叉树呢?

答案当然就是–线索化二叉树

2、线索化二叉树

  • 线索化二叉树指的是将二叉树中的结点进行逻辑意义上的“重排列”,使其可以线性的方式访问每一个结点
  • 二叉树线索化之后每个结点都有一个线性下标,通过这个下标可以快速访问结点,而不需要遍历二叉树

3、线索化方法一

这里写图片描述

这种方法和二叉树遍历法中的前序遍历很相似,甚至结果都是一样的!

算法思想:

这里写图片描述

算法实现:

/*
* 线索化
* 依据 空的左指针域 线索化
*/
void thread_btree_left(BTreeNode *root,BTreeNode **pp)
{
  if((root != 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值