无向图(Undirected Graph)是图论中最基础的概念之一。它是由若干个节点(Vertex或Node)和连接节点的边(Edge)组成的图,其中边没有方向性。那么具体什么叫无向图呢?从多个角度进行分析有助于更好的理解。
概念角度
从概念上理解,无向图就是一种图形,它由节点和连接它们的边组成,边没有方向性。无向图可以用G(V, E)来表示,其中V表示节点集合,E表示边的集合。无向图中的边可以用无序对(u, v)来表示,表示连接节点u和节点v,由于无向图的边没有方向,所以(u, v)和(v, u)是等价的。
形式化描述角度
从形式化描述上理解,无向图可以用邻接矩阵或邻接链表来存储。邻接矩阵是将节点和边转换为矩阵的形式,矩阵的行和列分别表示节点的编号,而以(u,v)为边的矩阵元素则为1,否则为0,这种方式可以方便地表示节点之间的关联关系。邻接链表则是将每个节点与周围的节点链接起来,每个节点的链表中包含与之相连的所有节点。
算法应用角度
从算法应用的角度来看,无向图在很多领域都有着广泛的应用,比如最小生成树算法和图的遍历算法。其中,最小生成树算法是找到无向图中的一棵生成树,使得树的边权值之和最小。以Prim算法为例,它是基于贪婪算法的方法,首先任意选取一个起点,然后往外扩展,每次选择一条最短的边进行扩展,直到扩展完毕,这样就可以得到最小生成树。而图的遍历算法有DFS(深度优先搜索)和BFS(广度优先搜索)两种,它们分别以深度优先和广度优先的顺序遍历图中的节点。
微信扫一扫,领取最新备考资料