叶倩琳实验四贪心算法:Huffman编码问题实现
需积分: 0 31 浏览量
更新于2024-04-03
收藏 213KB DOCX 举报
实验四中,叶倩琳在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编码的过程,通过贪心算法构建最优编码树,并将数据进行编码。叶倩琳成功完成了这个任务,展示了她在算法实现上的能力和专业知识。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
点击了解资源详情
小明斗
- 粉丝: 41
- 资源: 329
最新资源
- 愤怒的小鸟
- Python库 | python-datamatrix-0.7.1.tar.gz
- 毕业设计&课设--大学 毕业设计之Android项目,记事本。.zip
- netlify-lambda-builder:在制品实验
- SpaceStation12
- cFS-GroundSystem:核心飞行系统(cFS)地面系统实验室工具(cFS-GroundSystem)
- Pester-LogicApp:此示例显示了如何使用Pester和PowerShell集成测试Logic App
- HTML5-Speak-Easy:Web Speech API 语音合成(文本到语音)包装器
- resisc45_256_256_3.zip
- 毕业设计&课设--短视频社交软件 ,微信小程序,后台管理系统,专科毕业设计,仿抖音,springcloud+spri.zip
- Excel模板年级成绩自动统计.zip
- yash0patni:我的GitHub个人资料的配置文件
- travis-heroku-example:具有create-react-app,travis,heroku,Jest和Cucumber的持续交付示例
- ROSS:伦斯勒的乐观仿真系统
- 换肤器-独立-
- synaptic-lab:在 Clojure 中可视化和试验神经网络