20行构建哈夫曼树
发布时间:2020-12-17 17:14:23 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import random#定义节点class Node: def __init__(self,weight=0,left=None,right=None): self.weight=weight self.left=left self.right=right#按权
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 import random #定义节点 class Node: def __init__(self,weight=0,left=None,right=None): self.weight=weight self.left=left self.right=right #按权值排序 def sort(list): return sorted(list,key=lambda node:node.weight) #构建哈夫曼树 def Huffman(list): while len(list)!=1: a,b=list[0],list[1] new=Node() new.weight=a.weight+b.weight new.left,new.right=a,b list.remove(a) list.remove(b) list.append(new) list=sort(list) return list #中序遍历 def traval(First): if First==None : return traval(First.left) print First.weight traval(First.right) #获得树的长度 def get_height(node): if node.left==None and node.right==None: return 1 return get_height(node.left)+get_height(node.right) # list=[] # # for i in range(1,11): # list.append(Node(i)) # # list=sort(list) # # # head=Huffman(list)[0] # print(get_height(head)) 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |