哈夫曼编码问题
问题描述: 给定一个文本中n个字符的出现频率。设计n个字符的哈夫曼编码。 输入 一个整数n,n<100,下面n行分别为n个字符及其出现频率 输出 所有字符的频率与其编码长度的乘积之和 示例测试集: - 第1组 输入: 5 A 35 B 10 C 20 D 20 _ 15 输出: 225 - 第2组 输入: 3 x 20 Y 50 Z 5 输出: 100 整体思路: 用自定义类node实现存储 class node { public: string word; int weight; int lchild; int rchild; int parent; public: node(string a, int b) { word = a; weight = b; lchild = -1; rchild = -1; parent = -1; } node() {} }; 将之后新建结点与当前结点都存入vector容器内 在 select()函数中实现每次挑出最小的两个数(min),并实现连接(connect) 特别需要注意的是 哈夫曼编码树 最后的结点数=数据结点*2-1 注意点: int类型最大值 MAX 0x7fffffff vector 自定义类 必须实现构造函数 printf中实现递归错误写法 将a值改变,这样无法实现遍历 void printf(int a) { cout <<