赫夫曼树实验代码(绝对正确的).docVIP

  • 10
  • 0
  • 约1.1万字
  • 约 19页
  • 2017-11-07 发布于江苏
  • 举报
赫夫曼树实验代码(绝对正确的)

河北大学 专业: 数电信息 年级: 09 姓名: 学号 简单哈夫曼编/译码的设计与实现 实验目的和要求 (1)掌握树的有关操作算法 (2)熟悉树的基本存储方法 实验内容和原理 定义哈夫曼树的存储结构;输入要编码的字符权重,根据权重建立哈夫曼树,并进行编码,最后输出哈夫曼编码。 算法描述及实验步骤 算法描述 (1).建立哈夫曼树的算法 定义各节点类型其中应包含两类数据 一是权重域weight;一是指针域而指针域中应该包括指向左右孩子和指向双亲的指针这里分别用lchild、rdhild和parent来表示因此可用静态三叉链表来实现,在实际构造中由于是叶子节点来构造新的根节点其构造过程中仅与叶子节点的权重有关而与其数据域无关所以构造过程中不用考虑其数值域,并且在链表中从叶子开始存放,让后不断的将两颗最小权值的子树合并为一颗权值为其和的较大的子树,逐步生成各自内部节点直到树根。 (2).哈夫曼编码的算法 将建立的哈夫曼树从每个叶子节点开始沿着双亲域回到根节点,梅走一步进行编码得到一位编码值;由于每个叶子节点的哈夫曼编码是从根节点到相应的叶子的路径的各个分支的代码组成的0和1序列,所以先得到了低位编码后得到高位编码因此可用一维数组从后向前来存放各位编码值,并用start来记录编码的起始位置。 算法流程图 构建哈夫曼树算法流程 哈夫曼编码

文档评论(0)

1亿VIP精品文档

相关文档