代码设计字符信息统计:首先定义一个长度为26的整型数组,用来存储各个字母出现的次数,然后遍历SourceFile.txt中的每个字符,如果是字母,则在数组对应的位置+1,最后遍历数组,排除其中出现次数为0的数组元素。建立哈夫曼树:首先将字符及其出现次数构成一个结点,然后将其加入到一个小根堆中,再从小根堆中按照哈夫曼树的规则选取两个最小的结点组成一个新结点,持续这个过程,直到小根堆中只剩下一个结点为止。建立哈夫曼码表:从根结点开始,依次下降至每个叶子结点,若该结点是父结点的左孩子,则在编码表中记录相应的字符及其编码为“0”,反之为“1”,最后将编码表存入文件Code.txt中。对源文件进行编码:依次读取SourceFile.txt中的字符,查找编码表HC中对应的编码,将该字符转换为对应的编码串,写入编码文件ResultFile.txt中,直到处理完毕为止。
时间: 2023-03-14 10:18:13 浏览: 103
答:代码设计字符信息统计:首先定义一个长度为26的整型数组,用于存储各个字母出现的次数,然后遍历SourceFile.txt中的每个字符,如果是字母,则在数组对应的位置加1,最后遍历数组,排除其中出现次数为0的数组元素。建立哈夫曼树:首先将字符及其出现次数构成一个结点,然后将其加入到一个小根堆中,再从小根堆中按照哈夫曼树的规则选取两个最小的结点组成一个新结点,持续这个过程,直到小根堆中只剩下一个结点为止。建立哈夫曼码表:从根结点开始,依次下降至每个叶子结点,若该结点是父结点的左孩子,则在编码表中记录相应的字符及其编码为“0”,反之为“1”,最后将编码表存入文件Code.txt中。对源文件进行编码:依次读取SourceFile.txt中的字符,查找编码表HC中对应的编码,将该字符转换为对应的编码串,写入编码文件ResultFile.txt中,直到处理完毕为止。
相关问题
(1)字符信息统计: 假设源文件SourceFile.txt中的字符只有大小写英文字母(同一个字母的大小写看作一个字符),则字符统计算法的实现过程可以归纳为:先定义一个含有26个元素的整形数组,用来存储各个字母出现的次数,最后还要排除其中出现次数为0的数组元素。(2)建立哈夫曼树:参考教材算法5.10,补充函数Select的实现。 (3)建立哈夫曼码表:参考教材算法5.11,将编译表HC中的内容写到文件Code.txt中。(4)对源文件进行编码:依次读入文件SourceFile.txt中的字符c,在编码表 HC 中找到此字符,将字符c转换为编码表中存放的编码串,写入编码文件ResultFile.txt中,直到所有的字符处理完毕为止。代码设计
答:字符信息统计:首先定义一个长度为26的整型数组,用来存储各个字母出现的次数,然后遍历SourceFile.txt中的每个字符,如果是字母,则在数组对应的位置+1,最后遍历数组,排除其中出现次数为0的数组元素。建立哈夫曼树:首先将字符及其出现次数构成一个结点,然后将其加入到一个小根堆中,再从小根堆中按照哈夫曼树的规则选取两个最小的结点组成一个新结点,持续这个过程,直到小根堆中只剩下一个结点为止。建立哈夫曼码表:从根结点开始,依次下降至每个叶子结点,若该结点是父结点的左孩子,则在编码表中记录相应的字符及其编码为“0”,反之为“1”,最后将编码表存入文件Code.txt中。对源文件进行编码:依次读取SourceFile.txt中的字符,查找编码表HC中对应的编码,将该字符转换为对应的编码串,写入编码文件ResultFile.txt中,直到处理完毕为止。
阅读全文