数据结构 Huffman树(霍夫曼树、哈夫曼树) 以下是一个构建哈夫曼树并生成哈夫曼编码的Python代码示例: “`python # 定义哈夫曼树节点类 class Node: def __init__(self, value, weight): self.value = value self.weight = weight self.left = None self.right = None # 构建哈夫曼树 def build_huffman_tree(data): nodes = [Node(value, weight) for value, weight in data.items()] while len(nodes) > 1: nodes = sorted(nodes, key=lambda x: x.weight) left_node = nodes.pop(0) right_node = nodes.pop(0) parent_node = Node(None, left_node.weight + right_node.weight) parent_node.left = left_node parent_node.right = right_node nodes.append(parent_node) return nodes[0] # 生成哈夫曼编码 def generate_huffman_code(root, prefix=””, code={}): if root is None: return if root.value is not None: code[root.value] = prefix generate_huffman_code(root.left, prefix + “0”, code) generate_huffman_code(root.right, prefix + “1”, code) return code “` 以上代码中,`build_huffman_tree`函数接收一个字典类型的数据,其中键为节点的值,值为节点的权重,返回构建好的哈夫曼树的根节点。`generate_huffman_code`函数接收哈夫曼树的根节点,返回一个字典类型的编码表,其中键为节点的值,值为节点的哈夫曼编码。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/25394.html