图的遍历有深度优先和广度优先。 深度优先遍历是从图中某个顶点出发,访问此顶点,然后从它未被访问到的邻接点出发深度优先遍历图,直到图中所有和它有路径相通的顶点都被访问到.,类似树的先序遍历。 广度优先遍历从某个顶点出发,访问其所有相邻元素,再从某个相邻元素开始广度优先遍历,类似树的层级遍历。 深度优先遍...
1.1 邻接表 和 邻接矩阵 1.1.1 邻接表代码实现——leetcode 1971. 寻找图中是否存在路径 1.2 代码实现一种全能的图模板 2. 图的遍历方式 2.1 宽度优先遍历 2.2 深度优先遍历 3. 拓扑排序 3.1 拓扑排序的常见使用场景 3.2 题目 4. 生成最小生成树的两个算法,要求无向图,类似并查集的优化 4.1 k算法——krus...
22)重连通图:一个没有关节点的连通图。 2、图的存储 1)邻接矩阵法 (1)邻接矩阵存储:指用一个一维数组存储图中顶点信息,用一个二维数组存储图中边的信息,存储顶点之间邻接关系的二维数组称为邻接矩阵。 (2)邻接矩阵表示法的空间复杂度为O(n2),n为顶点数。 (3)特点:无向图的邻接矩阵是对称矩阵(并且唯一)...
AdjacencyList.h文件:构建邻接表的存储结构与邻接表的创建函数 DBFSAdjacencyList.h文件:构建邻接表的深度优先遍历与广度优先遍历函数 StackAndQueue.h文件:应广度优先遍历所需,提供队列的基本操作 test.cpp文件:用于测试 效果图:(如下) 效果图: AdjacencyList.h文件: #include<stdio.h> #include<stdlib.h> #define...
理解图的基本概念,掌握图的存储结构,实现图的深度优先搜索遍历算法与广度优先搜索遍历算法。 二、 实验内容 利用邻接矩阵描述示例图,编写程序输出示例图的深度优先搜索和广度优先搜索的遍历序列。 具体步骤如下: 将图的邻接矩阵描述为一个二维数组,并将该数组定义为全局变量,以便数据的传递; ...
1. 由于直接存边的遍历效率低下,一般不用于遍历图。 2. 在 Kruskal 算法 中,由于需要将边按边权排序,需要直接存边。 3. 在有的题目中,需要多次建图(如建一遍原图,建一遍反图),此时既可以使用多个其它数据结构来同时存储多张图,也可以将边直接存下来,需要重新建图时利用直接存下的边来建图。(...
typedef int Status; //图的邻接矩阵——数组存储表示--- #define INFINITYINT_MAX #define MAX_VERTEX_NUM20 typedef int VRType; typedef char VertexType[20]; typedef int Boolean; typedef struct ArcCell{ VRType adj; //InfoType *info; }ArcCell,AdjMatrix[MAX_VERTEX_NUM...
三、栈和队列 四、树 并查集 五、图 0 图的存储 1 图的搜索 1.1 深度优先搜索DFS 1.2 宽度优先搜索BFS 2 最小生成树 2.1 朴素版Prim算法 2.2 Kruscal算法 3 最短路径 3.1 Dijkstra算法 3.2 Floyd算法 4 拓扑排序 5 关键路径 六、查找 0 查找的基本概念 1 顺序查找法 2 折半查找法 3 分块查找法 4 ...
理解串匹配的基本算法;理解数组抽象数据类型;掌握一般数组顺序存储和特殊矩阵压缩存储的存储方法;掌握稀疏矩阵中三元组表的压缩存储方法;了解利用三元组表存储的矩阵快速转置操作算法。 5 0 0 线上线下混合式教学 课程目标 1 5 树与二叉树的基本概念; 二叉树的性质; ...