1. 什么是哈夫曼树?(这个我觉得看不看都无所谓)
答:(1)文字解释
经过以下步骤得到的树就是哈夫曼树。
①统计原始数据中的各种符号出现的频率(权重),并将各符号视为单独的结点;
②将各结点按照频率(权重)值的大小排成一个有序序列;
3从队列中选择频率(权重)值最小的两个结点,作为新结点的左、右孩子(左孩子结点的权值小于右孩子结点);
④将左、右孩子结点的权值相加,作为新结点的权值;
⑤使用新结点替代其左、右孩子结点加入有序序列,参与下一轮比较;
⑥重复上述2~⑤步,直到队列全部合并,得到原始编码数据的哈夫曼树;
⑦在每次合并符号结点时,将合并的左、右符号结点分别赋为“0”和“1”,得到哈夫曼树。
(2)图片解释
2. 哈夫曼树的带权路径长度WPL怎么求?
(1)文字解释
哈夫曼树中所有结点的带权路径长度之和。
每个结点的带权路径长度的计算公式:权值(题目会给)× 该结点的路径长度(根结点到该结点的线段数量)
(2)图片解释(以图中例题为例)
3. 哈夫曼编码怎么求?
(1)文字解释
哈夫曼编码就是由0和1组成的,所有结点的哈夫曼编码就是哈夫曼编码。
左0右1原则(也可以左1右0),根结点到左结点的线段上的数字为0,根结点到右结点的线段上的数字为1;凡是结点到左孩子的线段上的数字均为0,结点到右孩子的线段上的数字均为1;按照从根结点到该结点的方向读数(就是读线段上的0或1)就是该结点的哈夫曼编码。
(2)图片解释
没了吧没了吧,我们老师一节课讲完了,上课走神就知识点斜街不上,希望大家上课认真点啊,不然课堂测很惨的。