举报
fanfan2436
把我的两个回答结合起来研究一下吧 先计算频次 a 3 b 2 d 2 f 1 g 2 h 1 s 1 再排序(先频次 降序,再结点值 升序) a 3 b 2 d 2 g 2 f 1 h 1 s 1 各字符编码结果: 第一棵树: f(1)+h(1) = new_1(2) 第二棵树: s(1)+b(2) = new_2(3) 第三棵树: d(1)+g(2) = new_3(4) 第四棵树: new_1(2)+a(3) = new_4(5) 第五棵树: new_2(3)+new_3(4) = new_5(7) 第六棵树: new_4(5)+new_5(7) = root(12) root(12) / new_4(5) new_5(7) / / new_1(2) a(3) new_2(3) new_3(4) / / / f(1) h(1) s(1) b(2) d(1) g(2) 生成代码:(左0右1) f: 000 h:001 a:01 s:100 b:101 d:110 g:111