图的存储结构:邻接矩阵创建

需积分: 9 1 下载量 96 浏览量 更新于2024-08-23 收藏 608KB PPT 举报
"建立邻接矩阵(P-数据结构导论中第5章 图课件" 在数据结构领域,图是一种重要的数据结构,用于表示顶点之间的关系。本课件主要关注图的存储结构,特别是邻接矩阵的建立。邻接矩阵是表示图的一种常用方法,尤其适用于存储有向图和无向图中的边信息。 在邻接矩阵中,我们用二维数组来表示图的顶点之间的关系。数组的行和列对应图中的顶点,数组的元素值表示对应顶点之间是否存在边或者弧。对于无向图,邻接矩阵是对称的,因为每条边连接两个顶点,所以在矩阵中,(i, j)位置的元素和(j, i)位置的元素相同。对于有向图,邻接矩阵不一定是对称的,(i, j)位置的元素表示从顶点i到顶点j是否有弧。 在提供的代码段`CreateMGraph`函数中,首先读取图的顶点数`vexnum`和边数`arcnum`,然后输入顶点的名称,并初始化邻接矩阵`arcs`为大小为`vexnum`的二维数组,所有元素初始值为0,表示没有边。这一步确保了在图中没有定义的边默认不存在。 图的基本概念包括顶点、边、弧以及它们的属性。顶点是图的基本组成单元,边或弧表示顶点之间的关系。无向图中的边没有方向,而有向图中的弧有明确的方向,从弧尾指向弧头。顶点的度是与其相连的边或弧的数量,对于有向图,分为入度(以该顶点为弧头的弧数)和出度(以该顶点为弧尾的弧数)。完全图是指所有顶点间都有边相连的图,无向完全图的边数为`n(n-1)/2`,有向完全图的弧数为`n(n-1)`。 最小生成树和拓扑排序是图算法的重要应用。最小生成树是在加权图中找到一棵包括所有顶点且总权重最小的树。常用的算法有Prim算法和Kruskal算法。拓扑排序则是针对有向无环图(DAG)的一种排序方法,能够将DAG的顶点排成线性的顺序,使得对于每一条有向边`(u, v)`,顶点`u`在排序后的序列中都出现在顶点`v`之前。 在实际应用中,图可以用来表示网络、关系数据库中的关联、计算机程序中的调用关系等多种复杂关系,邻接矩阵作为图的存储方式,能够方便地进行各种图操作,如查找路径、计算最短路径等。