实验四--哈夫曼树与哈夫曼编码.docxVIP

  • 30
  • 0
  • 约3.12千字
  • 约 7页
  • 2021-10-18 发布于天津
  • 举报
一、 实验内容 [问题描述] 已知n个字符在原文中出现的频率,求它们的哈夫曼编码。 [基本要求] 初始化:从键盘读入n个字符,以及它们的权值,建立 Huffman 树。(具体算法可参见教材P147的算法) 编码:根据建立的Huffman树,求每个字符的Huffman 编码。 对给定的待编码字符序列进行编码。 二、 概要设计 算法设计: 要是实现哈夫曼树的操作,首先创建一个哈夫曼树,在创建哈夫 曼树的时候,对哈夫曼树的叶子和非叶子结点进行初始化,而在 建立哈夫曼树时,最难的该是选择权值最小的两个顶点,然后两 个结点的权值和作为新的权值,再选择两个权值最小的作为新的 两个结点创建一个小的二叉树的子树;创建哈夫曼树后,进行编 码,在编码过程中,先找到根,然后遍历,左孩子用0标记,右 孩子用1标记,最后将编码好的哈夫曼树进行输出,就可以知道 哈夫曼树的编码了。 流程图: 算法: 模块: 在分析了实验要求和算法分析之后,将程序分为四个功能函 数,分别如下: 首先建立一个哈夫曼树和哈夫曼编码的存储表示: typedef struct ( int weight; int parent,Ichild,rchiId; char elem; jHTNode,*HuffmanTree; arent . =1; HT[s2]. parent=i; HT[i], lchild=sl; HT[i].rc

文档评论(0)

1亿VIP精品文档

相关文档