当前位置: 首页 > news >正文

数据结构-堆

目录

heapq

导入

初始化 

插入元素

返回最小值

PriorityQueue

导入

初始化

入队

出队


堆是一颗树,其每个节点都有一个值,且(小根堆:每个父节点都小于等于其子节点

(在进树时不断进行比较

STL中的 priority_queue 其实就是一个大根堆

python中可以用 heapq(小根堆) 和 PriorityQueue (大根堆)

heapq

heapq默认是小根堆,如果想实现大根堆的话得负负得正

导入

import heapq

初始化 

heap=[]

或者从列表转化而来

heapq.heapify(列表名)

那么后面堆名就是列表名

插入元素

heapq.heappush(堆名,插入元素值)

返回最小值

heapq.heappop(堆名)

PriorityQueue

在这PQ里我们需要自己设置优先级,一般情况下就是元素值等于优先级值

从不是标准库的deque导入

注意⚠️:PriorityQueue得从不是标准库的deque导入

from deque import PriorityQueue

初始化

pq=PriorityQueue()

入队

pq.put([优先级,元素值])

出队

取出优先级最高的(小根堆的话也是负负得正

pq.get()

相关文章:

  • AWS之数据分析类产品
  • Mac 3大好用的复制粘贴管理工具对比
  • Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?
  • 第十七节:图像梯度与边缘检测-Sobel 算子
  • Uskin阵列式三轴力触觉传感器:驱动机器人智能的触觉数据专家
  • 深入理解 Java 代理模式:从基础到实战​
  • MiM: Mask in Mask Self-SupervisedPre-Training for 3D Medical Image Analysis
  • Docker宿主机IP获取
  • 智慧工会服务平台建设方案Word(23页)
  • 机器学习-无量纲化与特征降维(一)
  • 爬虫学习————开始
  • AI服务器通常会运用在哪些场景当中?
  • vue dev-tools插件
  • 电动汽车充换电设施可调能力聚合评估与预测 - 使用说明文档
  • 亚马逊跨境新蓝海:解码爱尔兰电商市场的凯尔特密码
  • HDLC(High-Level Data Link Control,高级数据链路控制协议)
  • uniapp-商城-47-后台 分类数据的生成(通过数据)
  • uniapp 不同路由之间的区别
  • 高频数据结构面试题总结
  • 数据类型:List
  • 聆听百年唐调正声:唐文治王蘧常吟诵传习的背后
  • 浙江一民企拍地后遭政府两次违约,“民告官”三年又提起民事诉讼
  • 【社论】以法治力量促进民企长远健康发展
  • 马上评|比余华与史铁生的友情更动人的是什么
  • 国防部:奉劝有关国家不要引狼入室,甘当棋子
  • 巴基斯坦信德省首府卡拉奇发生爆炸