数据结构
文章平均质量分 79
Fighting_1997
唯有勤奋不会辜负于你。
展开
-
python中heapq模块
堆 堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆。( heapq库中的堆默认是最小堆) 最大堆,树种各个父节点的值总是大于或等于任何一个子节点的值。 最小堆,树种各个父节点的值总是小于或等于任何一个子节点的值。 我们一般使用二叉堆来实现优先级队列,它的内部调整算法复杂度为logN。 堆是一个二叉树,其中最小堆每个父节点的值都小于或等于其所有子节点的值。 整个最小堆的最小元素总是位于二叉树的根节点。 python的heapq模块提供了对(最小)堆的建立和使用。 heapq堆数据结构原创 2022-02-18 12:12:15 · 603 阅读 · 0 评论 -
python高级使用之变量进阶(引用,可变性,局部变量和全局变量)
目标 变量的引用 可变和不可变类型 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据的地址,就叫做 引用 使用 id() 函数可以查看变量中保存数据所在的 内存地址 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用 变量原创 2022-01-29 09:45:02 · 228 阅读 · 0 评论 -
数据结构:堆(Heap)
堆就是用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的常用方法: 构建优先队列 支持堆排序 快速找出一个集合中的最小值(或者最大值) 堆属性 堆分为两种:最大堆和最小堆,两者的差别在于节点的排序方式。 在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节点的值都要小。这就是所谓的“堆属性”,并且这个属性对堆中的每一个节点都成立。 例子: 这是一个最大堆,,因为每一个父节点的值都比其子节点要大。10 比 7 和原创 2021-11-22 15:49:01 · 130 阅读 · 0 评论 -
数组、链表和树(内核数组和链表实现原理及代码)
内核数组和链表实现栈,队列,树线性存储栈数组实现原理链表实现原理队列数组实现原理链表实现原理非线性结构树数组实现原理链表实现原理补充数组C语言实现代码链表C语言实现代码 系统学习完数组和链表后,才了解道其重要性,对于栈和链表以及树等结构,其内核分为数组实现和链表实现两种方式,为防止遗忘,特意整理如下,部分C代码暂时未补全,随后会更新全部,希望大家有问题可以及时评论,共同进步!!! 线性存储 栈 数组实现原理 栈:先进后出 数组由前向后存储数据,从后向前读取数据,实现栈的要求 链表实现原理 通过两个原创 2021-08-11 10:35:20 · 523 阅读 · 1 评论 -
数据结构(郝斌课程内容概述)
数据结构概述 定义 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法 数据结构 = 个体的存储 + 个体的关系存储 算法 = 对存储数据的操作 算法 解题的方法和步骤 衡量算法的标准 时间复杂度:大概程序要执行的次数,而非执行的时间 空间复杂度:算法执行过程中大概所占的最大内存 难易程度 健壮性 数据结构的地位 数据结构是软件转载 2021-08-10 21:51:19 · 442 阅读 · 0 评论