python数据结构堆栈
堆
堆是一种树形结构:满足两个主要性质
- 堆是一种完全二叉树:堆中所有层级除了最后一层都是完全填满的,且最后一层的节点都是向左排列
- 堆中的任意节点都不大于(或不小于)其子节点的值,这也是堆的属性
import heapq as hp
import numpy as npdata=np.arange(10)
np.random.shuffle(data)# 定义一个heap列表
heap=[]
#将数据堆入
for i in data:hp.heappush(heap,i)print(heap)hp.heappush(heap,100)print('列表中最小元素',hp.heappop(heap)) #弹出最小元素# heapify(heap) 可以将任意的列表转换为堆
data=np.random.randint(1,100,size=(10)).tolist()
print(data)
print('转换前',type(data))
hp.heapify(data)
print('转换后',type(data))print('列表中最小元素',hp.heappop(data))# heapreplace(heap,n) 弹出最小元素并且被n替代
hp.heapreplace(data,1000)
print(data)# nlargest(n,heap) #返回第n个最大值
print('第一个最大值',hp.nlargest(1,data))
print('第二个最大值',hp.nlargest(2,data))#nsmallest(n,heap) #返回第n个最小值
print('第一个最小值',hp.nsmallest(1,data))
print('第二个最小值',hp.nsmallest(2,data))# 合并堆
data1=np.random.randint(1,10,5).tolist()
data2=np.random.randint(1,10,5).tolist()
hp.heapify(data1)
hp.heapify(data2)
merged=list(hp.merge(data1,data2)) #合并两个堆
print('合并堆',list(merged))
print('data1',data1)# 堆排序
# merged=hp.merge(data1,data2)
print('堆排序前',list(merged))
sortd_data=[hp.heappop(merged) for _ in range(len(list(merged)))]
print('堆排序后',sortd_data)

栈
栈是一种线性结构,特点是后进先出。栈主要有两个操作,分别为压栈和弹栈。压栈是将数据压入栈顶,弹栈主要是从栈顶弹出元素。
栈的特点:
- 后进先出
- 栈的容量是固定的,当栈达到最大容量的时候,再次压栈会导致溢出
- 栈的元素不可以随机访问,每次只能通过弹栈来获取栈顶元素
相关文章:
python数据结构堆栈
堆 堆是一种树形结构:满足两个主要性质 堆是一种完全二叉树:堆中所有层级除了最后一层都是完全填满的,且最后一层的节点都是向左排列堆中的任意节点都不大于(或不小于)其子节点的值,这也是堆的属性 impo…...
从网页连接socket服务器和I/O
1.i/o InputStream和InputStreamReader是Java I/O类库中的两个关键类,用于处理字节流。它们的主要区别在于它们处理数据的方式。 InputStream: InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。InputStream的子类可以从不同的数据源读取字节&…...
鸿蒙HarmonyOS学习手册_入门篇
鸿蒙HarmonyOS学习手册_入门篇 文章目录 鸿蒙HarmonyOS学习手册_入门篇入门快速入门开发准备基本概念UI框架应用模型工具准备 构建第一个ArkTS应用(Stage模型)-快速入门-入门创建ArkTS工程ArkTS工程目录结构(Stage模型)构建第一个…...
人工智能复习
机器学习中线性回归和逻辑回归: 机器学习的分类: 监督学习和无监督学习,半监督学习 监督学习(Supervised Learning): 监督学习是一种利用带有标签(标记)的数据进行训练的机器学习…...
C++ 多态以及多态的原理
文章目录 多态的概念多态的构成条件虚函数的重写虚函数重写的两个例外 重载、重写(覆盖)、重定义(隐藏)对比C11 final 和 override关键字抽象类接口继承和普通继承多态的原理虚函数表多态的原理 单继承和多继承关系的虚函数表单继承中的虚函数表多继承中的虚函数表 多态的概念 …...
贝蒂详解<string.h>(下)
✨✨欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog 目录 1. 简介 2. memset()函数 2.1用法 2.2实例 2.3 实现me…...
问题 F: 分巧克力
题目描述 儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第i 块HiWi 的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。 切出的巧克力需要满足&am…...
安装pillow可能遇到的问题
安装命令 pip install Pillow安装 Pillow 这个 Python 图像处理库时可能会遇到多种问题。以下一些常见的安装问题及其解决方法: 缺少依赖项: Pillow 安装可能需要一些基础库,如 libjpeg 和 zlib。如果在安装时提示缺少这些库,你需要先安装它…...
详解ajax、fetch、axios的区别
众所周知它们都用来发送请求,其实它们区别还蛮大的。这也是面试中的高频题,本文将详细进行讲解。 1. ajax 英译过来是Aysnchronous JavaScript And XML,直译是异步JS和XML(XML类似HTML,但是设计宗旨就为了传输数据&a…...
致远OA getAjaxDataServlet XXE漏洞复现(QVD-2023-30027)
0x01 产品简介 致远互联-OA 是数字化构建企业数字化协同运营中台,面向企业各种业务场景提供一站式大数据分析解决方案的协同办公软件。 0x02 漏洞概述 致远互联-OA getAjaxDataServlet 接口处存在XML实体注入漏洞,未经身份认证的攻击者可以利用此漏洞读取系统内部敏感文件…...
力扣最热一百题——只出现一次的数字
这个合集已经很久没有更新了,今天来更新更新~~~ 目录 力扣题号 题目 题目描述 示例 提示 题解 Java解法一:Map集合 Java解法二:位运算 C位运算代码 力扣题号 136. 只出现一次的数字 - 力扣(LeetCode) 下述题…...
UE5 UE4 修复GPU驱动程序崩溃
原贴链接:https://mp.weixin.qq.com/s/e5l9XtfwEFWgwhHi1b2idg UE5 UE4在处理含有大量图形的项目时,你有可能会遇到GPU崩溃 可以通过修改注册表,修复崩溃。 GPU崩溃情况概述 UE5 UE4在处理含有大量图形的项目时,你有可能会遇到G…...
SpiderFlow爬虫平台 前台RCE漏洞复现(CVE-2024-0195)
0x01 产品简介 SpiderFlow是新一代爬虫平台,以图形化方式定义爬虫流程,以流程图的方式定义爬虫,不写代码即可完成爬虫,是一个高度灵活可配置的爬虫平台。 0x02 漏洞概述 SpiderFlow爬虫平台src/main/java/org/spiderflow/controller/FunctionController.java文件的Functi…...
帆软report 设置条件属性,值为负数标为红色功能时,不生效
详细情况: 在设置负数为红色功能前,已经有一个条件属性,数据集获取的值为空或者为0时,转换成 - 符号。如下图: 具体表单显示效果如下: 条件属性2设置 原因 因为条件属性1设置的 - 符号没有设置颜色…...
QML实现的图片浏览器
很久之前实现了一个QWidget版本的图片浏览器:基于Qt5的图片浏览器QHImageViewer 今天用QML也实现一个,功能差不多: ●悬浮工具栏 ●支持图片缩放、旋转、还原、旋转、拖动。 ●拖动图片时,释放鼠标图片会惯性滑动。 ●支持左右翻页查看文件夹中的图片。 ●支持保存图片至本…...
【HTML】对字体的所有操作详解(经典)
目录 一、文字样式设置的基本标签二 、 设置文字的颜色三、设置文字的尺寸四、 设置文字的字体五、 使文字倾斜六、 使文字加粗七、处理网页中的特殊字符十、 如何更方便地忽略浏览器对部分HTML的解析十一、 其他文字修饰方法十二、为了让文字富有变化,或者为了着意…...
关于调查项目的讨论
怎么安排一个调查项目 要安排一个调查项目,你需要经过以下步骤: 1. 确定调查目的:明确你为什么要进行这个调查,你想了解什么问题或获得什么信息。 2. 制定研究问题:根据调查目的,确定需要回答的具体问题…...
Matlab三维绘图
绘制三维图plot3 t0:pi/50:10*pi; xsin(t); ycos(t); zt; plot3(x,y,z); 产生栅格数据点meshgrid 这个接口在绘制三维图像里面相当重要,很多时候要将向量变成矩阵才能绘制三维图。 x0:0.5:5; y0:1:10; [X,Y]meshgrid(x,y); plot(X,Y,o); x和y是向量,…...
一体式气象站的优点是什么?带大家了解一下
一体式气象站是一款高度集成、低功耗、可快速安装、便于野外监测使用的高精度自动气象观测设备。 一体式气象站的优点主要体现在以下几个方面: 集成度高:一体式气象站集成了多种气象传感器、数据处理单元、显示单元和通讯模块等,可以同时监…...
第八讲_css定位
css定位 1. css定位介绍2. 静态定位(static)3. 相对定位(relative)4. 绝对定位(absolute)5. 固定定位(fixed)6. 粘性定位(sticky) 1. css定位介绍 在 css 中…...
GLM-4.1V-9B-Base实际作品集:10张典型图片的多角度中文理解结果
GLM-4.1V-9B-Base实际作品集:10张典型图片的多角度中文理解结果 1. 模型能力概览 GLM-4.1V-9B-Base是智谱开源的视觉多模态理解模型,专为中文视觉理解任务设计。这个模型最令人印象深刻的地方在于,它能像人类一样"看"图片并回答各…...
【独家首发】CPython官方GIL移除路线图深度解读(附内部邮件泄露+性能基准测试数据),错过再等十年
第一章:Python无锁GIL环境下的并发模型演进全景Python长期以来受全局解释器锁(GIL)制约,导致多线程无法真正并行执行CPU密集型任务。近年来,随着CPython 3.12正式引入实验性无GIL构建选项(通过--without-py…...
Token 成本暴跌 280 倍,为什么用 AI 替代初级开发,依然算不拢账?
从董事会的 PPT 翻车,看 AI 降本神话背后的全成本真相上周我旁听了一场 C-suite 高管会议,亲眼看着一位副总裁被自己的 PPT 逼入绝境。会议的主题是 AI 项目的成本收益,他准备了一套无懈可击的逻辑:大模型 Token 价格 3 年暴跌 28…...
MySQL 故障排查与生产环境优化笔记
一、基础信息1. 实验环境数据库版本:MySQL 8.0架构:1 台单实例 2 台主从复制环境用途:模拟生产故障、验证优化方案2. MySQL 逻辑架构(四层)连接层处理客户端连接、授权认证、权限校验提供线程池、SSL 安全连接服务层S…...
《AI 小游戏开发(5)|零基础复刻经典贪吃蛇!AI 生成完整代码,支持难度切换》
目录 一、本课目标 二、需要准备的工具 三、超详细操作步骤(分两步:生成基础代码 → 添加难度切换) 第一步:生成基础贪吃蛇游戏(AI 一键生成) 1. 给 AI 的详细提示词(复制完整) 2. 复制 AI 生成的基础代码 3. 保存并运行基础游戏 第二步:给游戏添加难度切换功…...
gui 的高清与标清
现在无论对图层设计多样化 一般采用4层 或者更多:/*** file display_config.h* brief 显示配置头文件 - 定义图层管理和显示参数* details 采用4层图层设计,支持高清/标清自适应*/ #ifndef DISPLAY_CONFIG_H #define DISPLAY_CONFIG_H #include &l…...
终极Kando多语言指南:如何快速实现跨平台饼状菜单的国际化支持
终极Kando多语言指南:如何快速实现跨平台饼状菜单的国际化支持 【免费下载链接】kando 🌸 Do things with utmost efficiency. 项目地址: https://gitcode.com/gh_mirrors/ka/kando Kando是一款高效的跨平台饼状菜单工具,通过直观的径…...
神马网站 SEO 优化对网站转化率的影响
神马网站 SEO 优化对网站转化率的影响 在当今互联网时代,网站的流量和转化率直接关系到企业的销售和品牌的知名度。仅仅拥有流量并不意味着一切都顺风顺水,如何把这些流量转化为实际的业务和销售,这就涉及到神马网站的SEO优化对网站转化率的…...
Linux下用tar.gz压缩含软连接的目录,为什么比zip更靠谱?
Linux下处理含软连接目录:为什么tar.gz比zip更可靠? 在Linux系统管理中,文件打包和压缩是日常操作中不可或缺的一部分。当目录结构中含有软连接(symbolic link)时,选择合适的压缩格式就显得尤为重要。许多管…...
rk3576(5)之设备树下GPIO驱动
1、简介rk3576buildroot设备树GPIO驱动编写。个人理解设备树就相当于存在统一规则、统一管理的头文件,记录了开发板的设备信息。2、设备树语法2.1、dtsi 头文件设备树也支持头文件,设备树的头文件扩展名为.dtsi设备树文件不仅可以应用 C 语言里面的.h 头…...
