线索二叉树

文章内容来源于c语言数据结构(严蔚敏版本),可以简单的说是读书心得

 

书里面是以中序遍历为例子的,所谓中序遍历就是先遍历左子树,再遍历根节点,再遍历右子树。

 

所谓二叉树的线索化的目的就是知道节点的前边是哪一个节点以及节点的后边又应该是哪一个节点。前序以及后记都是逻辑上的,不是物理上的。

 

代码省略了,有兴趣的可以翻看书本。

 

在递归里面先处理左子树,直到最后一个节点,判断节点的左子树是否为空?如果为空就指向前驱节点。

如果节点的右子树为空,则指向后继节点。

 

 

当判断当前节点的过程中,判断前一个节点的右孩子指针是否为空,为空,则令前一个节点的右孩子指向当前节点。

 

 

 

赫夫曼树:

带权节点到根节点的路径长度极为赫夫曼树。  如果所有节点的路径长度最短即为最小赫夫曼树。

 

赫夫曼树的一般构造方法:

1、在带权节点中选择最小的两个带权节点,作为左右子树,其权值相加,构成左右子树的根节点。

2、从带权节点的集合中删除已选过的节点

3、在1的基础上,才剩下的带权节点的集合里再选择一个最小的带权节点,作为1构造的树的根节点的兄弟左子树,两个值相加,构成新的根节点。

4、重复123步骤,直到带权节点集合里面没有节点了,到此一个赫夫曼树就构造完成了。

其应用领域有电报。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值