
Добавил:
keirin
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лаба Сжатие с потерями - 4 сем АИСД
.pdfnew = HuffmanNode(None, left.freq + right.freq, left, right) heapq.heappush(heap, new)
root = heap[0] codes = {}
def traverse(node, code=""): if node.value is not None:
codes[node.value] = code else:
traverse(node.left, code + "0") traverse(node.right, code + "1")
traverse(root) return codes
def encode_with_huffman(data_list, huffman_table): data_list = flatten(data_list)
return ''.join(huffman_table[item] for item in data_list)
def decode_huffman(encoded_str, huffman_table): reverse_table = {v: k for k, v in huffman_table.items()} result = []
code = ""
for bit in encoded_str: code += bit
if code in reverse_table: result.append(reverse_table[code]) code = ""
return result
51
Соседние файлы в предмете Алгоритмы и структуры данных