数据结构
dta0502
个人博客:https://tding.top/
展开
-
哈希存储、哈希表原理
哈希表的定义哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中。查找时再根据要查找的关键字采用同样的函数计算出哈希地址,然后直接到相应的存储单元中去取要找的数据元素即可。哈希表的应用哈希表(hash table)是实现字典操作的一种有效的数据结构。尽管最坏的情况下,...转载 2018-06-29 11:15:24 · 19529 阅读 · 0 评论 -
数组和链表的区别
原文地址 http://blog.csdn.net/qq_25806863/article/details/70607204 数组的特点1)在内存中,数组是一块连续的区域。2)数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。更糟糕的是,当项的数目长度超出了数组的长度的时候,需要创建一个新的、更大的数组,并且从旧的数组转移数据项。3)插入数据和删除数据效率低,插入数据时,这个位置...转载 2018-06-24 21:31:02 · 120 阅读 · 0 评论 -
深入理解递归
递归的思想以此类推是递归的基本思想。具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。递归的两个条件(1)可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)(2)存在一种简单情境,可以...转载 2018-06-25 21:46:43 · 172 阅读 · 0 评论 -
图
数据结构——图的学习路线学习先决条件:指针基础 数组和链表 图的基本概念(如边,顶点,路径,权值)1 理解图的两大存储结构1-1 邻接矩阵1-2 邻接表注意:邻接表中,指针数组里的每一个指针都是一个单链表的头指针注意:单链表里每个节点里存储的是图中每条边的信息。2 理解图的遍历算法2-1 深度优先遍历 dfs注意:花半小时看懂dfs的递归代码。2-2 宽度优先遍历 bfs注意:又叫广度优先算法,需...转载 2018-07-16 12:48:07 · 244 阅读 · 0 评论 -
Python用list实现堆栈和队列
详细版本见个人博客:Python用list实现堆栈和队列Python中可以用list来模拟栈和队列:栈(stack):只能在一端进行数据操作,遵循后进先出(LIFO)原则队列(queue):可以在两端进行数据操作,遵循先进先出(FIFO)原则,出队列的一端称为队首,入队列的一端称为队尾一、栈1、栈要记录的数据栈顶位置top:注意这个top有两种理解方式,一种是表示栈的最后一个数...原创 2019-06-17 16:13:18 · 1811 阅读 · 0 评论 -
Python集合用处
详细版本见个人博客:Python集合用处集合的最大特点是:集合里边的元素是不可重复的并且集合内的元素还是无序的。一般情况下集合常用的两个场景是:去重(如:列表去重);关系测试(如:取交集、取并集、取差集等)一、去重1、比较麻烦的方法——利用列表方法就是遍历一个列表,对其中的每个数据判断在不在第二个列表里list1=[1,2,3,4]list2=[3,4,5,6]list3...原创 2019-06-17 16:15:01 · 3477 阅读 · 1 评论