文章分类 - 数据结构与算法
数据结构与算法
摘要:theme: devui-blue highlight: atom-one-dark 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。 例如我们依次往二叉查找树中插入9,8,7,6,5,
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 并查集是一种树型的数据结构 ,并查集可以高效地进行如下操作: 查询元素p和元素q是否属于同一组 合并元素p和元素q所在的组 并查集结构 并查集也是一种树型结构,但这棵树跟我们之前讲的二叉树、红黑树、B树等都不一样,
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 堆的定义 堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的特性 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 树的基本定义 树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。 树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”
阅读全文
摘要:线性表定义 线性表(List):零个或多个数据元素的有限序列。 首先它是一个序列,其次,线性表强调是有限的。 前驱元素:若A元素在B元素的前面,则称A为B的前驱元素 后继元素:若B元素在A元素的后面,则称B为A的后继元素 线性表的特征 数据元素之间具有一种“一对一”的逻辑关系。 第一个数据元素没有前
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 图的实际应用 在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。 地图 我们生活中经常使用的地图,基本上是由城市以及连接城市的道路组成,如果我们
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 有向图 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a -> b,但不能说是b -> a,此时我们就需要使用有向图来解决这一类问题,它和我
阅读全文
摘要:theme: devui-blue highlight: atom-one-dark 栈与队列 我们一般把栈与队列合在一块讨论,因为他们具有相似的性质。 栈:栈是限定仅在表尾进行插入和删除操作的线性表,所以栈又称为后进先出(LastIn First Out)的线性表,简称LIFO结构。 队列:只允许
阅读全文
摘要:算法的特性 算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。 输入输出 算法具有零个或多个输入 至少有一个或多个输出:算法是一定需要输出的,不需要输出,你用这个算法干吗? 有穷性 指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。现实中经常会写出死
阅读全文
摘要:符号表定义 符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值。 符号表中,键具有唯一性。 符号表在实际生活中的使用场景是非常广泛的,见下表: | 应用 | 查找目的 | 键 | 值 | | | | | | |
阅读全文
摘要:什么是数据结构? 官方解释:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。 大白话:数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据。 数据结构分类 按照逻辑结构分类 逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,
阅读全文

浙公网安备 33010602011771号