python 树结构可视化(python数据结构堆的介绍)
导读:说明...
说明
1 、堆是用数据结构来实现的一种算法:树 ,数组均可 。堆本身是一棵完全二叉树 。
2 、特点 ,堆:所有父节点的值大于子节点的值 。最小堆 ,所有父节点的值小于子节点的值 。
实例
classHeap(object): def__init__(self,list=[]): self.root=None self.list=list self.tree=None self.len=len(list) #建堆 defbulid_heap(self): ifself.list!=[]: final_parent_node=int((self.len-1)/2) whilefinal_parent_node>=0: self.heapfy(final_parent_node,self.len) final_parent_node-=1 #对当前节点以及向下所有子节点的一次节点交换 defheapfy(self,node,len): node_left=2*node+1 node_right=2*node+2 max=node ifnode_left<lenandself.list[node_left]>self.list[max]: max=node_left ifnode_right<lenandself.list[node_right]>self.list[max]: max=node_right ifmax!=node: self.swap(max,node) self.heapfy(max,len) #交换元素方法 defswap(self,i,j): self.list[j],self.list[i]=self.list[i],self.list[j] #堆排序 defheap_sort(self): len=self.len-1 whilelen>=0: self.swap(0,len) self.heapfy(0,len) len-=1 if__name__=="__main__": list=[5,7,3,1,10,0] heap=Heap(list) print("初始列表:{}".format(heap.list)) heap.bulid_heap() print("堆化:{}".format(heap.list)) heap.heap_sort() print("排序:{}".format(heap.list))以上就是python数据结构堆的介绍 ,希望对大家有所帮助 。更多Python学习指路:Python基础教程
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!