叶倩琳实验四贪心算法:Huffman编码问题实现
实验四中,叶倩琳在2019年04月18日完成了贪心算法的任务。问题一是关于Huffman编码的实验,测试数据为:X={zhejiang university of technology,computer college} Y={1310773597218806522025}。编码实现的代码如下: ```python import heapq class Node: def __init__(self, char, freq): self.char = char self.freq = freq self.left = None self.right = None def __lt__(self, other): return self.freq < other.freq def encode(root, code, data): if root is None: return if root.char: data[root.char] = code encode(root.left, code + "0", data) encode(root.right, code + "1", data) def huffman_encoding(data): pq = [Node(k, v) for k, v in data.items()] heapq.heapify(pq) while len(pq) > 1: left = heapq.heappop(pq) right = heapq.heappop(pq) internal = Node(None, left.freq + right.freq) internal.left = left internal.right = right heapq.heappush(pq, internal) root = pq[0] codes = {} encode(root, "", codes) encoded_data = "" for char in data: encoded_data += codes[char] return encoded_data, root data = {"z": 1, "h": 1, "e": 5, "j": 1, "i": 3, "a": 1, "n": 2, "g": 2, " ": 6, "u": 1, "v": 1, "r": 2, "s": 1, "t": 3, "y": 1, "o": 4, "f": 1, "c": 2, "m": 1, "p": 1, "l": 3} encoded_data, root = huffman_encoding(data) print("Encoded data:", encoded_data) ``` 以上代码实现了Huffman编码的过程,通过贪心算法构建最优编码树,并将数据进行编码。叶倩琳成功完成了这个任务,展示了她在算法实现上的能力和专业知识。
![](https://csdnimg.cn/release/download_crawler_static/86361167/bg6.jpg)
剩余26页未读,继续阅读
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://profile-avatar.csdnimg.cn/4444e8234b2a4461a83da43bddbf3f6c_weixin_35815640.jpg!1)
- 粉丝: 34
- 资源: 329
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)