随笔分类 -  数据结构

考研复习,顺便整理
摘要:最近复习题目,发现对图的python实现比较无知,所以实现一下。 在python中采用字典来表示图的结构,访问非常方便。 BFS与DFS非递归的写法最大的差别是在遍历的过程中路过的结点一个用队列保存,一个用栈保存,其他结构几乎是一样的! 这么理解的话应该很好记忆了 直接上代码 graph={ 1:[ 阅读全文
posted @ 2021-09-21 01:56 土星狗蛋 阅读(670) 评论(0) 推荐(0)
摘要:散列表是实现字典操作的一种有效的数据结构。在最坏情况下查找一个元素的时间与链表中查找的时间相同,达到了O(n)。而理想的情况下,散列表查找一个元素的平均时间达到了O(1)。 下面就散列表的原理做一个简单的描述。 用最简单的数字x来做一个描述,就是一个数字在计算机中存放的位置坐标y与这个数字x有直接关 阅读全文
posted @ 2018-03-23 19:12 土星狗蛋 阅读(1497) 评论(0) 推荐(0)
摘要:桶排序(bucket sort)是一种时间复杂度为线性时间(O(n))的排序。其原理如下:(参考算法导论第8章) 桶排序将[0,1)区间划分为n个大小相同的子区间,每个子区间称之为桶。桶与桶之间是有序的。对于n个输入的数,分别落入不同每一个桶中。落入同一个桶中的元素在结点接入的过程中要查找到其对应的 阅读全文
posted @ 2018-03-15 16:59 土星狗蛋 阅读(309) 评论(3) 推荐(0)
摘要:计数排序的算法思想: 对于每一个元素x,只要确定了元素x有多少个比它小的元素,那么就可以知道其最终的位置。 记输入数组为A[n],存放最后排序输出的数组为B[n],提供临时存储空间的中间数组记为C[k]。 1\首先,将中间数组C[k]清0,其中,0~k为A[n]中元素的取值范围。 2\一边遍历A[n 阅读全文
posted @ 2018-03-15 15:17 土星狗蛋 阅读(175) 评论(0) 推荐(0)
摘要:优先队列(priority queue)是一种用来维护一组数据集合S的数据结构。每一个元素都有一个相关的值,被称为关键字key。 这里以实现最大优先队列为例子 最大优先队列支持的操作如下:INSERT(S,x):把元素x插入集合S中MAXIMUN(S):返回S中具有最大键字的元素。EXTRACT-M 阅读全文
posted @ 2018-03-13 14:05 土星狗蛋 阅读(366) 评论(0) 推荐(0)
摘要:最近在自学算法导论,看到堆排序这一章,来做一下笔记。堆排序是一种时间复杂度为O(lgn)的原址排序算法。它使用了一种叫做堆的数据结构。堆排序具有空间原址性,即指任何时候都需要常数个额外的元素空间存储临时数据。 堆:二叉堆是一个数组,它可以被看成一个近似的完全二叉树。除了最底层以外,该树是满的;且最底 阅读全文
posted @ 2018-03-12 19:54 土星狗蛋 阅读(465) 评论(0) 推荐(0)
摘要:快速排序 是非常经典的一个算法,可以在对数规模的时间下实现对一组数的排序。 其基于分治的思想,每一趟排序把原组数划分为更小的范围进行排序,并且一定有一个数会在每趟排序下放在最终的位置。 对于一个数组arr[p....r]进行快排: 划分:把数组划分为arr[p...q-1],arr[q],和arr[ 阅读全文
posted @ 2018-01-18 18:07 土星狗蛋 阅读(264) 评论(0) 推荐(0)
摘要:1、算法实现与分析 2、实现截图 阅读全文
posted @ 2017-09-28 23:43 土星狗蛋 阅读(601) 评论(0) 推荐(0)
摘要:基本的四种图的存储结构简述 阅读全文
posted @ 2017-09-28 23:36 土星狗蛋 阅读(1335) 评论(0) 推荐(0)
摘要:1、并查集的基本描述 2、并查集的特点 3、并查集的适用场合 4、代码实现 5、代码实现截图 阅读全文
posted @ 2017-09-14 07:39 土星狗蛋 阅读(813) 评论(0) 推荐(0)
摘要:1、二叉排序树的定义 2、二叉排序树的特点 3、二叉排序树的适用场合 4、代码实现 5、代码实现截图 阅读全文
posted @ 2017-09-13 07:17 土星狗蛋 阅读(910) 评论(0) 推荐(0)
摘要:二叉树的先序遍历、中序遍历、后序遍历和层序遍历的非递归实现和简单的算法描述 阅读全文
posted @ 2017-09-09 22:30 土星狗蛋 阅读(659) 评论(0) 推荐(0)
摘要:1、二叉树的链式存储 2、遍历 3、代码实现 阅读全文
posted @ 2017-09-09 20:56 土星狗蛋 阅读(297) 评论(0) 推荐(0)
摘要:1、链式队列简述 2、代码实现 3、实现截图 阅读全文
posted @ 2017-09-04 16:23 土星狗蛋 阅读(220) 评论(0) 推荐(0)
摘要:1、循环队列简介 2、判别队空或是队满的方式 3、注意事项 4、代码表示 5、截图 阅读全文
posted @ 2017-09-04 15:08 土星狗蛋 阅读(505) 评论(0) 推荐(0)
摘要:描述:设有两个栈,S1和S2,都采用顺序栈的存储方式。两个栈共享一个存储区:【0,……maxsize-1】目的:可以尽量利用空间,减少溢出的可能,采用栈顶相向、迎面增长的存储方式 PS:要注意判断栈满栈空的检查 阅读全文
posted @ 2017-08-01 18:59 土星狗蛋 阅读(407) 评论(0) 推荐(0)
摘要:1、顺序栈的基本功能实现 阅读全文
posted @ 2017-08-01 00:37 土星狗蛋 阅读(194) 评论(0) 推荐(0)
摘要:1、链式栈的基本功能实现 阅读全文
posted @ 2017-07-30 13:57 土星狗蛋 阅读(195) 评论(0) 推荐(0)
摘要:1、静态链表简述 2、静态链表的基本操作实现 阅读全文
posted @ 2017-07-19 15:56 土星狗蛋 阅读(220) 评论(0) 推荐(0)
摘要:1、双向链表的基本功能实现 2、双向链表的功能小算法实现 阅读全文
posted @ 2017-07-19 03:27 土星狗蛋 阅读(294) 评论(0) 推荐(0)