数据结构
文章平均质量分 89
风鸣万象
追求内心的澄澈和宁静
展开
-
初识散列表
一个跑步比赛,选手编号为 ,05 表示年级,中间 11 表示班级,最后两位 67表示编号。那么我们怎么能快速查找到选手信息呢?我们可以用基于数组的方式,截取后两位 67 映射数组下标,获取选手信息。现在我用 python 来实现一下:什么是散列表?散列表用的是数组支持按照下表随机访问数据的特性,所以散列表其实就数组的一种扩展,由数组演化而来。可以说,如果没有数组就没有散列表散列表(hash table)实则是由散列函数和数组组成。散列表的两个核心问题就是:散列函数设计和散列冲突解决常见的哈希算法:MD原创 2022-07-01 14:30:55 · 417 阅读 · 2 评论 -
如何优雅地实现链表及相关链表题实现
链表总结常见链表分为单链表循环链表双向链表链表的特点:由一个个节点 Node(data, next, prev) 组成。其中 next, prev 分别为指向下一个节点的指针,data 表示存储的数据。链表是由一个个不连续的空间组成,由指针将零散的内存块串联在一起,因此比较节省空间(相较于 array)链表适合于内存少,插入、删除频繁的使用场景。链表不适用于查询频繁的使用场景对于无序的链表,插入、删除操作时间复杂度为 O(1)。查找时间复杂度为 O(n)对于有序的链表,插入、删除原创 2022-05-21 19:46:36 · 503 阅读 · 0 评论 -
python数据结构总结
文章目录数据结构列表(list)列表中使用的函数列表方法多维列表元组(tuple)元组基本操作元组内置函数关于元组不可变集合(set)集合的基本操作集合的数学运算字典字典的基础操作字典方法字符串字典的基础操作测试字符串搜索子串转换字符串删除字符串中的空格格式化字符串:常见数据结构总结算法复杂度实例计算python数据结构链表单向链表:双向链表:栈队列(Queue)树词汇和定义列表表示树树的遍历数据结构列表(list) 一个列表可以存储任意大小的数据集合 列表是一个用list类定义的序列,它包括了原创 2020-08-18 08:59:35 · 1047 阅读 · 1 评论 -
狄克斯特拉算法——python实现
文章目录狄克斯特拉算法原理概述相关术语:实例研究——换钢琴代码实现狄克斯特拉算法原理概述加权图——提高或降低某些边的权重狄克斯特拉算法包括四个步骤:1、找出“最便宜”的节点,即可再最短时间内到达的节点。2、对于该节点的邻居,检查是否有前往他们的更短路径,如果有,就更新其开销。3、重复这个过程,直到对图中的每个节点都这样做了。4、计算最终路径。相关术语:狄克斯特拉算法用于每条边都有关联数字的图,这些数字称为权重带权重的图称为加权图,不带权重的图称为非加权图若需要计算非加权图中的最原创 2020-08-12 13:45:08 · 1025 阅读 · 0 评论 -
python数据结构——链表总结
python数据结构——链表文章目录python数据结构——链表单链表概述单向链表实现:单链表优化单链表概述数据结构是计算机科学必须掌握的一门学科,在C语言中,可以使用“指针+结构体”来实现链表;而在python中,则可以采用“引用+类”来实现链表。链表的定义:是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接。链表的结构:data 为自定义的数据,next为下一个节点的地址,head为保存首位节点的地址:单向链表实现:单向链表(单链表)是链表的一原创 2020-08-04 09:39:26 · 1085 阅读 · 0 评论