首页 > 其他分享 >【数据结构-树】哈夫曼树及其应用

【数据结构-树】哈夫曼树及其应用

时间:2022-11-29 22:15:23浏览次数:40  
标签:... 结点 哈夫曼 WPL 二叉树 应用 权值 数据结构

目录

1 哈夫曼树的构造

  • 将 n 个结点作为 n 棵仅含一个节点的二叉树,构成森林 F
  • 在 F 中选取两棵权值最小的二叉树,作为新结点的左右子树,并将新结点的权值置为左、右子树的根结点的权值之和
  • 将新结点的二叉树加入 F 中,同时删去原来两棵选取出来的二叉树
  • 重复以上步骤,直到 F 中只剩一棵二叉树

【哈夫曼树的性质】

  • 构造过程中一共新建了 n-1 个结点
  • 总结点数为 2n-1
  • 不存在度为 1 的结点
  • 哈夫曼树并不唯一
  • 哈夫曼树的 WPL 一定相同且最优

2 哈夫曼树的应用——哈夫曼编码

哈夫曼编码的译码过程(从编码到字符):

  • 从左至右依次扫描字符串的各位
  • 从哈夫曼树根开始,根据串中当前字符,沿当前结点的左指针或右指针,一直移动到叶结点为止,输出叶结点中保存的字符
  • 一直重复这个过程,直到扫描到字符串结束为止

3 相关例子

image

image

  • WPL:树的所有叶结点的带权路径长度之和
  • WPL = (W1L1 + W2L2 + W3L3 + ... + WnLn),N 个权值Wi (i=1,2,...n) 构成一棵有 N 个叶结点的二叉树,相应的叶结点的路径长度为 Li (i=1,2,...n)

标签:...,结点,哈夫曼,WPL,二叉树,应用,权值,数据结构
From: https://www.cnblogs.com/Mount256/p/16936857.html

相关文章

  • SQL注入问题、视图、触发器、事务、隔离级别、MVCC多版本控制、存储过程、函数、流程
    目录SQL注入问题视图触发器创建触发器语法触发器的命名触发器实际应用事务如何使用事务隔离级别MVCC多版本控制存储过程函数流程控制索引相关概念索引数据结构慢查询优化S......
  • C#数据结构-七大查找算法
    阅读目录1.顺序查找2.二分查找3.插值查找4.斐波那契查找5.分块查找6.树表查找7.哈希查找下面所有的代码,都已经经过vs测试。1.顺序查找基本思想:顺序查找也称为......
  • C#数据结构-List实现
    把C#内部的List<T>手动实现了一遍,实现很多Array开头的方法,比如Array.Copy(),Array.Clear()等,在.NETFramework的内部方法,当然C#内部实现应该更快。同时,拷贝了C#的排序源码......
  • C#数据结构--Dictionary、HashTable、List、HashSet区别
    在.Net  模仿java的过程中,抛弃了HashMap,所以我们今天分析下Dictionary、HashTable、HashSet区别。处理碰撞,即碰撞到同一个Bucket槽上:Hashtable和Dictionary从数据结构上......
  • C#数据结构-Dictionary实现
    在看过一篇大神写的​​《带你看懂Dictionary的内部实现》​​,对Dictionary的内部实现有了一个清晰的了解,但纸上得来终觉浅,作为程序员,还是自己调试一下代码,记忆更深刻,为此专......
  • C#数据结构-红黑树实现
    二叉查找树,他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。红黑树保证在最坏的情况下插入和查找效率都能保证在对数的时间复杂度......
  • C#数据结构-有限状态机
    有限状态机FSM的要点是:  拥有一组状态,并且可以在这组状态之间进行切换。  状态机同时只能在一个状态。  一连串的输入或事件被发送给机器。  每个状态都......
  • SQL注入问题、视图、触发器、事物、存储过程、函数、流程控制、索引相关概念、索引数
    目录SQL注入问题视图触发器事物存储过程函数流程控制索引相关概念索引数据结构慢查询优化测试装备联合索引全文检索插入数据更新数据删除数据主键外键重命名表事物安全管理......
  • 数据结构(3):栈(下)
    上回说到,栈是只能在某一端进行各种操作的线性表,我们把这一端称之为栈顶,那么另一端就是栈底,其特点为后进先出(LIFO)。这一回,我们来看一下栈的3个常见应用:括号匹配、表达式求......
  • 数据结构(4):队列(下)
    上回说到,队列是一个先进先出的操作受限的线性表。这一回,我们看到队列的两个常见的应用:层次遍历和在计算机系统中的应用。队列在层次遍历中的应用在信息处理中有一大类问题需......