首页 > 其他分享 >深入探索哈夫曼编码与二叉树的遍历

深入探索哈夫曼编码与二叉树的遍历

时间:2024-12-28 21:26:12浏览次数:7  
标签:编码 遍历 哈夫曼 二叉树 编码方式 压缩率

  1. 编码表(将字符转换成二进制01数字)

  • 定长的编码方式

  • 不定长的编码方式
  • 压缩率很高,但是会产生数据歧义
  • 哈夫曼编码
  • 出现的次数越多,权重分配的值越小。

  • 哈夫曼树,左1右0,转换成编码
  1. 哈夫曼编码(压缩率高,数据不会产生歧义)

  • 哈夫曼编码----->二叉树
  • 带权路径值=权值*经过的结点数
  • 带权路径值之和最小=哈夫曼树
  • 哈夫曼树:权值越大离根节点越近
  1. 二叉树的遍历

  • 深度优先遍历:先序遍历(先根节点,左子树,右子树)、中序遍历(左根右)、后序遍历(左右中)
  • 先序遍历
  • 中序遍历
  • 后序遍历
  • 广度优先遍历:

标签:编码,遍历,哈夫曼,二叉树,编码方式,压缩率
From: https://blog.csdn.net/m0_73566497/article/details/144795377

相关文章

  • 106.从中序与后序遍历构造二叉树
    106.从中序与后序遍历构造二叉树中序:左根右后序:左右根思路:中序遍历需要定位根节点的坐标前序和后序需要定位子树根节点的坐标1.构造map方便通过root->value拿到该值在中序中的下标(in_root)2.从后序的最后一个值拿到当前root的value3.通过map拿到in_root4.构造此时结......
  • 图---基于邻接矩阵表示的广度优先遍历
    6-3基于邻接矩阵表示的广度优先遍历实现基于邻接矩阵表示的广度优先遍历。函数接口定义:voidBFS(GraphG,intv);其中G是基于邻接矩阵存储表示的无向图,v表示遍历起点。裁判测试程序样例:#include<stdio.h>#include<stdlib.h>#defineMVNum10     ......
  • 实现基于邻接矩阵表示的深度优先遍历
    6-4实现基于邻接矩阵表示的深度优先遍历函数接口定义:voidDFS(GraphG,intv);其中G是基于邻接矩阵存储表示的无向图,v表示遍历起点。裁判测试程序样例:#include<stdio.h>#include<stdlib.h>#defineMVNum10             intvisite......
  • 【257. 二叉树的所有路径 简单】
    题目:给你一个二叉树的根节点root,按任意顺序,返回所有从根节点到叶子节点的路径。叶子节点是指没有子节点的节点。示例1:输入:root=[1,2,3,null,5]输出:[“1->2->5”,“1->3”]示例2:输入:root=[1]输出:[“1”]提示:树中节点的数目在范围[1,100]内-100<=N......
  • java中Map遍历的四种方式
    java中Map遍历的四种方式|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|-------------|......
  • 【C++数据结构——图】图的遍历(头歌教学实验平台习题) 【合集】
    目录......
  • jquery遍历 $
    jquery遍历$.each和$(selector).each()的区别|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|----------......
  • dataframe的遍历
    for_,rowintrain_df.iterrows():print(j)breakid00007cff95d7f7974642a785aca248b0f26e60d3312fac...promptviešpoSlovensky?response_aÁno,hovorímposlovensky.Akovámmôžempom......
  • 构建哈夫曼树
    构建哈夫曼树哈夫曼树(HuffmanTree),又称最优二叉树,是一种带权路径长度最短的二叉树,常用于数据压缩领域中的编码算法——哈夫曼编码。哈夫曼树是一种特殊的二叉树,其构造过程需要频繁地找到频率最小的两个节点并进行合并。这个过程可以通过最小堆来高效地实现。**堆(Heap)**是......
  • 代码随想录——贪心23监控二叉树
    思路这道题目首先要想,如何放置,才能让摄像头最小的呢?从题目中示例,其实可以得到启发,我们发现题目示例中的摄像头都没有放在叶子节点上!这是很重要的一个线索,摄像头可以覆盖上中下三层,如果把摄像头放在叶子节点上,就浪费的一层的覆盖。所以把摄像头放在叶子节点的父节点位置,才......