一:图的分类 1:无向图 即两个顶点之间没有明确的指向关系,只有一条边相连,例如,A顶点和B顶点之间可以表示为 <A, B> 也可以表示为<B, A>,如下所示 2:有向图 顶点之间
图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List)。 1. 邻接表的结点结构 (1)表结点结构 ┌────┬───┐ │
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。 1 2 3 4 5 6 4 5 1 4 9 4 3 8 1 2 5 2
图的存储方法:邻接矩阵、邻接表 例如:有一个图如下所示(该图也作为程序的实例): 则上图用邻接矩阵可以表示为: 用邻接表可以表示如下: 邻接矩阵可以很容易的用二维数组表示,下面主要看看怎样构成邻接表: 邻接表存储方
前言 图的遍历与前面文章中的二叉树遍历还是存在很大区别的。所谓图的遍历指的是从图中的某一个顶点出发访问图中的其余顶点,并且需要保证每个顶点只被访问一次。由于图比二叉树复杂得多,所以前面二叉树的遍历算法在图中是行不通的。因为对于任意一个顶点来讲,都可能与其余的
近段时间又回顾了下数据结构中的图,我之前的有一篇博文介绍了图与线性表和树的区别与联系。 并且就图的存储和图的创建也做了一些简单的说明, 这一篇我将着重说说图的两种基本的遍历方法,深度遍历和广度遍历。 深度遍历: 深度遍历类似于树的先根遍历,是树的先根遍历的推广
关于图的存储在上一篇文章中已经讲述,在这里不在赘述。下面我们介绍图的深度优先搜索遍历(DFS)。 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj;访问vj之后,又访问vj的一个邻接点,依次类推,尽可能向纵深方向
邻接表建图法1 极大的节省了空间和时间 是建图非常棒的一种方式 它利用数组模拟出边与边之间的关系 图示解析(数据为代码中的测试数据): 1 #include<iostream> 2 #define Maxn 200 3 usingnamespace std;