数据结构基础知识核心归纳(三)

本文介绍了数据结构中的赫夫曼树和二叉树概念,包括赫夫曼树的定义、构造算法和编码,以及二叉树的特点、遍历方法。还探讨了堆、树的相关知识,如堆排序、完全二叉树、平衡二叉树等,对理解数据结构有重要作用。
摘要由CSDN通过智能技术生成
数据结构基础知识核心归纳(三)
转载请声明出处:http://blog.csdn.net/andrexpert/article/details/77907894

     

Android                                          Java                                            数据结构
Android基础技术核心归纳(一)     Java基础技术核心归纳(一)     数据结构基础知识核心归纳(一) 
Android基础技术核心归纳(二)     Java基础技术核心归纳(二)     数据结构基础知识核心归纳(二)  
Android基础技术核心归纳(三)     Java基础技术核心归纳(三)    数据结构基础知识核心归纳(三)  
Android基础技术核心归纳(四)     Java基础技术核心归纳(四)


     不知不觉又是一年的9月,今天跟一个师弟聊天,谈到了他现在面试的一些情况,突然想起自己当年也是这么走过来的,顿时感慨良多。Android/Java经验汇总系列文章,是当初自己毕业时笔试、面试和项目开发中相关的总结,虽然不是很高深的东西,也没有归纳得很全面,但是对Android、算法、Java把握个大概还是没问题,今天特意将这些文章放出来,希望能够对看到这个系列文章的毕业生朋友一点帮助吧。当然,由于受当时知识面的限制,归纳得可能不是很准确,若有疑问就留言吧,我就不细看了。


1.赫夫曼树与赫夫曼编码
1.赫夫曼树

(1)定义:假设有n个权值{w1,w2,...,wn},构造一棵有n个叶子结点的二叉树,每个叶子结点带权为wk,每个叶子的路径长度为lk,则其中树的带权路径长度WPL=∑(wk*lk)最小的二叉树称为赫夫曼树,也称最优二叉树。


   ,该树的带权路径长度WPL = ∑(wk*lk) = 1*10+2*70+3*15+3*5=210.
● 叶子的路径长度lk:从根结点到叶子结点之间的分支数目总和;
● 树的带权路径长度WPL:树中所有叶子结点的带权
2.构造赫夫曼树算法
(1)根据给定的n个权值{w1,w2,....,wn}构成n棵二叉树的集合F={T1,T2,...,Tn},其中每棵二叉树Tk中只有一个带权为wk根结点,其左右子树均为空;
(2)在F中选择两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为左右子树上根结点的权值之和;
(3)在F中删除这两棵树,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值