(2) 取概率最小的两个符号作为两片叶子合并
(缩减)到一个 节点。
(3) 视此节点为新符号,其概率等于被合并(缩
减)的两个概率之和,参与概率排队。
(4) 重复(2)(3)两步骤,直至全部符号都被合并
(缩减)到根。
(5) 从根出发,对各分枝标记 0 和 1。从根到叶
的路径就给出了各个码字的编码和码长。
2、程序设计的原理
(1)程序的输入:以一维数组的形式输入要进行
huffman 编码的信源符号的概率,在运行该程序
前,显示文字提示信息,提示所要输入的概率矢
量;然后对输入的概率矢量进行合法性判断,原
则为:如果概率矢量中存在小于 0 的项,则输入
不合法,提示重新输入;如果概率矢量的求和大
于 1,则输入也不合法,提示重新输入。
(2)huffman 编码具体实现原理:
1>在输入的概率矩阵 p 正确的前提条件下,
对 p 进行排序,并用矩阵 L 记录 p 排序之前各元
素的顺序,然后将排序后的概率数组 p 的前两
项,即概率最小的两个数加和,得到新的一组概
率序列,重复以上过程,最后得到一个记录概率