Python中数据结构,Python堆

  Python中数据结构,Python堆

  说明

  1、堆是用数据结构来实现的一种算法:树,数组均可。堆本身是一棵完全二叉树。

  2、特点,堆:所有父节点的值大于子节点的值。最小堆,所有父节点的值小于子节点的值。

  实例

  类堆(对象):

  def__init__(self,list=[]):

  self.root=None

  self.list=list

  self.tree=无

  self.len=len(列表)

  #建堆

  defbulid_heap(self):

  ifself.list!=[]:

  最终父节点=int((self.len-1)/2)

  whilefinal_parent_node=0:

  自我健康(最终_父节点,self.len)

  最终父节点-=1

  #对当前节点以及向下所有子节点的一次节点交换

  defheapfy(自身、节点、长度):

  node _ left=2 *节点数字一(one)

  node _ right=2 *节点注射毒品

  最大=节点

  if node _ leftlenandself。列出[node _ left]自己。列表[max]:

  max=node_left

  if node _ rightlenandself。列出[node _ right]自己。列表[max]:

  max=node_right

  ifmax!=节点:

  自我交换(最大,节点)

  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.list))

  heap.bulid_heap()

  打印(堆化:{}.格式(heap.list))

  heap.heap _排序()

  打印(排序:{}.格式(heap.list))以上就是大蟒数据结构堆的介绍,希望对大家有所帮助。更多计算机编程语言学习指路:python基础教程

  本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • 留言与评论(共有 条评论)
       
    验证码: