《 数据结构 》课程设计 ——赫夫曼编码/译码器设计 指导教师:李文书、周维达 班级:10 电信实验班 学号:Q ******** 姓名:*** 1 一、实验目的 1、提高分析问题、解决问题的能力,进一步巩固数据结构各种原理与方法
2、熟悉掌握一门计算机语言,可以进行数据算法设计
二、实验原理 哈夫曼编\译码器的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生成哈夫曼编码后进行译码
在数据通信中,经常需要将传送的文字转换成由二进制字符0、1 组成的二进制串,称之为编码
构造一棵哈夫曼树,规定哈夫曼树中的左分之代表 0,右分支代表 1,则从根节点到每个叶子节点所经过的路径分支组成的 0 和 1 的序列便为该节点对应字符的编码,称之为哈夫曼编码
最简单的二进制编码方式是等长编码
若采用不等长编码,让出现频率高的字符具有较短的编码,让出现频率低的字符具有较长的编码,这样可能缩短传送电文的总长度
哈夫曼树课用于构造使电文的编码总长最短的编码方案
主要流程图如下: 开始 结点数是否大于1 将data 和权值赋给ht 输出根结点和权调用SELECT 函数 计算根结点函父结点为两子结点之和 输出两子结点和已构造的是否为根结点
左子是否为空
此时编码为0 I