1、说明
创建堆有两种基本方法:heappush() 和 heapify()。
当使用heappush()tJKLUYXJUi时,当新元素添加时,堆得顺序被保持了。
如果数据已经在内存中,则使用 heapify() 来更有效地重新排列列表中的元素。
2、实例
import heapq from heapq_showtree import show_tree from he http://HdhCmsTestcppcns测试数据 apq_heapdata import data heap = [] print('random :', data) print() for n in data: print('add {:>3}:'.format(n)) heapq.heappush(heap, n) show_tree(hea HdhCmsTestcppcns测试数据 p) # output # random : [19, 9, 4, 10, 11] # # add 19: # # 19 # ------------------------------------ # # add 9: # # 9 # 19 # ------------------------------------ # # add 4: # # 4 # 19 9 # ------------------------------------ # # add 10: # # 4 # 10 9 # 19 # ------------------------------------ # # add 11: # # 4 # 10 9 # 19 11 # ------------------------------------
知识点扩展:
创建最大(小)堆
二叉堆本质上是一种完全二叉树,存储方式并不是链式存储,而是顺序存储
堆操作:插入(叶子节点上调),删除(堆顶元素下沉)
堆创建:非叶子节点下沉(从最后一个非叶子节点开始)
最小堆:
最小堆任何一个父节点的值,都小于等于它左右孩子节点的值
创建过程:如果非叶子节点值大于其子节点,将其下沉
最大堆:
最大堆任何一个编程客栈父节点的值,都大于等于它左右孩子节点的值。
创建过程:如果非叶 HdhCmsTestcppcns测试数据 子节点值小于其子节点,将其下沉
到此这篇关于python创建堆的方法实例讲解的文章就介绍到这了,更多相关python创建堆的方法有哪些内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
查看更多关于python创建堆的方法实例讲解的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did126540