declare class HuffmanTree { private tree; private binaryStr; /** * 1. 统计字符出现频率 * 2. 构造哈夫曼树 * 3. 取得编码对照表 * 4. 返回最终的二进制编码 * @param str 需要编码的字符串 */ constructor(str: string); /** * 统计字符出现频率 */ private count; /** * 根据字符出现频率构造哈夫曼树 * 选择两个频率最低的,较低的放左边,较高的放右边 * 并将两个节点的频率相加,形成新的节点,放入森林中 * 直到最后只剩下一个根节点,就是形成了树 */ private getHuffmanTree; private getHuffmanCodeTable; /** * 计算最终的压缩后的二进制串 * @param map 编码对照表 * @param originStr 原始待编码字符串 */ private getBinaryStr; encode(): string; /** * 如果返回为空字符串 * 表示解码失败 */ decode(str: string): string; } export default HuffmanTree;