数据结构(王道)
文章平均质量分 95
王道数据结构笔记
凌凌_2023
这个作者很懒,什么都没留下…
展开
-
第六章:图
图的基本概念 我们可以这样定义一个图:图G由两个集合构成,分别是顶点集V和边集E,我们一般记为G=(V,E)G=(V,E)G=(V,E),其中顶点集包含了一个或多个顶点,边集则包含了零条或多条边。 这里要注意的是,图的顶点集至少应该包含一个顶点,所以顶点集不能为空集,但边集允许为空,还需要注意的是,边集里面保存的边是两个顶点之间的边,所以我们可以采用无序对或者有序对来表示它,如果这个边是有顺序的,我们采用有序对,如果没有顺序,采用无序对。 由此定义可知,顶点集的个数也就是顶点的个数,我们可以用|V|表示,原创 2023-10-21 18:48:18 · 87 阅读 · 2 评论 -
第五章:树与二叉树
树的基本概念 树是一种新的数据结构,我们可以用前面学到的前驱和后继的关系来理解他,对于树来说除了第一个节点以外,其余节点都只有一个前驱,每一个节点都可能有0个或多个后继,这就是树,其实用一张图更好理解 这就是一棵树,我们把上面的认为是前驱,下面的认为是后继,B,C,D都拥有同一个前驱A,B后面又拥有E和F两个后继。 接下来抛出一些概念 空树:一个节点也没有的树就是空树,可以参考前面的空表来理解 非空树:不是空树的树都是非空树,非空树至少有一个节点 父节点:就是我们前面说的前驱节点,上图B就是E和F的父节原创 2023-10-05 14:32:27 · 42 阅读 · 0 评论 -
第一章:绪论
这里就引入数据结构的概念:**数据结构是相互之间存在一种或多种特定关系的数据元素的集合。原创 2023-09-27 10:42:37 · 31 阅读 · 0 评论 -
第二章:线性表
在上一节中提到过,我们研究一种数据结构,应该关注数据结构的三要素,即逻辑结构,物理结构,运算,三个方面,本节围绕逻辑结构和运算两个方面来展开。线性表顾名思义就是一个线性的表,所谓线性就是被穿到一起,数据元素之间存在一个前后关系,如下图所示线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用命名线性表,则其一般表示为La1a2⋯aiai1⋯anLa1a2⋯aiai1⋯an。原创 2023-09-27 10:42:01 · 59 阅读 · 0 评论 -
第三章:栈、队列和数组
以上代码就是一个顺序栈的结构体定义,难度不算大,初始化也只需要修改top的值即可,但是这里要稍加注意,top可以让他指向两个位置,第一个位置是直接指向栈顶元素,第二个位置是指向栈顶元素的下一个位置,如果我要让他直接指向栈顶元素,那么初始化时就应该设为-1,如果要让他指向栈顶元素的下一个位置,那就应该初始化为0,这个没有硬性要求,全凭自己喜好,我们这里让他指向-1的位置,这里给出栈的初始化以及判空操作。原创 2023-09-27 10:41:06 · 30 阅读 · 0 评论 -
第四章:串
串就是字符串,是由零个或多个字符组成的一个有序序列例如"sagdsfadsfa",这就是一个串字符串中的字符个数就称为字符串的长度,长度为0的字符串我们称之为空串,可以用空集(∅\emptyset∅接下里介绍几个基本概念子串:传中任意个连续字符构成的子序列。例如:"s a Str"就是"This is a String"的子串主串:与子串相对应,A是B的子串,那么B是A的主串。字符在字符串中的位置:顾名思义,需要注意这里表示的是位序,从1开始。原创 2023-09-27 10:37:53 · 31 阅读 · 0 评论