中级
哈夫曼编码-生成编码表
未完成
中级参考
代码结构已给出,请填写 ____ 处
def get_huffman_codes(____):
codes = {}
def traverse(____):
if node is None:
return
if node.char is not None:
codes[node.char] = code
return
traverse(____)
traverse(____)
traverse(____)
return codes
示例
输入
import heapq
class N:
def __init__(self, c, f): self.char=c; self.freq=f; self.left=self.right=None
def __lt__(self, o): return self.freq < o.freq
freq = {'a': 5, 'b': 9, 'c': 12, 'd': 13, 'e': 16, 'f': 45}
heap = [N(c, f) for c, f in freq.items()]; heapq.heapify(heap)
while len(heap) > 1:
l = heapq.heappop(heap); r = heapq.heappop(heap)
p = N(None, l.freq + r.freq); p.left = l; p.right = r
heapq.heappush(heap, p)
root = heap[0]
print(get_huffman_codes(root)['f'])
期望输出
0
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199