python-哈夫曼树
2024-09-29 10:18:24
#!/usr/bin/python
#coding=utf-8
#哈夫曼树创建 class Node():
def __init__(self,value,left=None,right=None):
self.value=value
self.left=left
self.right=right
class Halfman():
def init(self,k):
k.sort()
# key=Node(k[0])
self.root=Node(k[0])
if len(k)==len(set(k)): #无重复项判定
for i in range(1,len(k)):
node=Node(k[i])
if i==1:
max=k[i]*(len(k)-i)+self.root.value*(len(k)-1)
else:
max=k[i]*(len(k)-i)+self.root.value
root=Node(max,self.root,node)
self.root=root
return self.root
def pre(self,root):
if root==None:return
print root.value
self.pre(root.left)
self.pre(root.right) k=[2,8,5,6,4,7,9,1,3]
tree=Halfman()
a=tree.init([2,8,5,6,4,7,9,1,3]) tree.pre(a) print '*'*40 print a.value
print a.left.value
print a.right.value
最新文章
- 在测试框架中使用Log4J 2
- Raytracer
- Genymotion
- css中box-shadow阴影效果的使用
- vs 2013 Express 无法启动程序xxx.exe,系统找不到指定文件
- CGRectXXX笔记
- C++ Primer----一个关于 vector 的有趣的问题
- codeforce 702D Road to Post Office 物理计算路程题
- Understanding responsibilities is key to good object-oriented design(转)
- openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】
- HDU 5798 Stabilization
- Hibernate基础学习(一)—初识Hibernate
- FastJson简单使用
- [转]关于OpenGL的绘制上下文
- 12.2、Libgdx的图像之清屏
- C# 绘制PDF嵌套表格
- Elasticsearch 关键字:索引,类型,字段,索引状态,mapping,文档
- tomcat中web项目编译后的结构
- sqli-labs(十)(过滤注释符)
- 关于Sublime Text3的emmet插件和tab快捷键冲突问题