
独孤九剑——九破数据结构
闲云野雀
继续努力
展开
-
破“顺”式
顺序表的原理顺序表是简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以 快速定位第几个元素,中间不允许有空值;插入、删除时需要移动大量元素。顺序表的三个要素:① 基地址② 分配一段连续的存储空间 (实际的存储空间大小)③记录实际的元素个数(即顺序表的长度)//顺序表结构体定义#define MAX_SIZE 100 typedef int ElemType;struct _SqList{ ElemType *elems; // 顺序表的基地址 int原创 2020-05-31 23:18:27 · 178 阅读 · 0 评论 -
破“链”式
之前我们学习了顺序表,但是,每次移除一颗星星导致 其后的所有元素都向前移动并不是一种高效的做法,如果不止几十颗星星,而是有成千上万 颗星星,每删除一颗,无异于是对数据进行乾坤大挪移(同样,插入也是如此)…...原创 2020-06-03 17:24:03 · 339 阅读 · 2 评论 -
破“队”式(一)
队列的原理队列是一种受限的线性表,(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out)原创 2020-06-25 20:35:27 · 161 阅读 · 0 评论 -
破“队”式(二)
123原创 2020-06-30 23:14:26 · 148 阅读 · 0 评论 -
破“堆”式
堆的特征依据以上特征,我们一起看看能不能找到下面那个是真正的最大堆,看看你到底有没有火眼金睛!结果是:只有C是最大堆;A、B不是最大堆的原因你发现了吗?还没发现再回顾一下堆的特征。 堆的原理高能:堆是你见过的最有个性的树!它是用数组表示的树!其特征满足二叉树!在数组中快速创建堆1. 首先我们需要找到最后一个结点的父结点如图(a),我们找到的结点是 87,然后找出该结点的最大子节点与自 己比较,若该子节点比自身大,则将两个结点交换. 图(a)中,87 比左子节点 95 小,则交换之原创 2020-07-04 17:10:15 · 159 阅读 · 0 评论 -
破“栈”式
栈的原理如同图里的小汽车是排成一条直线,是线性排列,而且只能从一端进出,后进的汽车先出去,后进 先出(Last In First Out,LIFO),这就是"栈"。栈也是一种线性表,只不过它是操作受限的线性 表,只能在一端操作。 进出的一端称为栈顶(top),另一端称为栈底(base)。栈可以用顺序存储,也可以用链式存储。...原创 2020-07-10 16:21:46 · 245 阅读 · 0 评论 -
破“树”式
树树状图是一种数据结构,它是由 n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除 了根结点外,每个子结点可以分为多个不相交的子树;二叉树一个没有限制的线性表应用范围可能有限,但是我们对线性表进行一些限制就可 以衍生出非常有用的数据结构如栈、队列、优先队列等。...原创 2020-07-12 15:15:29 · 358 阅读 · 0 评论 -
破“哈希”式
哈希表哈希表有点像我们上学的时候按学号分小组,通过这种方式老师可以很轻松的下达任务,或者很快的发现谁没交作业(一个班的作业很难一眼看出少了几本,但是一个组就那么几本作业,少了一两本一眼就看出来了)。如图将24人分成6组这种编号的方式就是高效的散列,我们俗称“哈希”!以上过程是通过把关键码值 key(编号)映射到表中一个位置(数组的下标)来访问记录,以加 快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希链表的算法实现哈希链表数据结构的定义#define DEFAULT原创 2020-07-12 22:30:53 · 162 阅读 · 0 评论 -
破“图”式(一)
图的原理图的表示原创 2020-07-13 20:18:26 · 280 阅读 · 0 评论 -
破“图”式(二)
图的应用案例游戏中的自动寻路-A*算法寻路步骤原创 2020-07-14 15:57:04 · 269 阅读 · 0 评论