加权网络图的邻接矩阵
时间: 2024-12-28 11:28:25 浏览: 17
### 加权网络图的邻接矩阵表示方法
在加权网络图中,每条边不仅代表两个节点之间的连接关系,还带有权重属性。对于这种类型的图,可以采用邻接矩阵来进行有效的表达。
#### 定义与初始化
邻接矩阵是一个二维数组 `A` ,其中 `A[i][j]` 存储的是从顶点 i 到顶点 j 的边上的权重值。如果两顶点间不存在直接相连的情况,则通常设置为无穷大(∞),这表明两点之间无直达路径;而对于自己到自己的情况一般设为零[^1]。
```cpp
const int INF = 999; // 假定INF表示无限距离
int adjMatrix[MaxSize][MaxSize]; // MaxSize是预定义的最大结点数
// 初始化所有元素为无穷大, 对角线位置赋值为0
for (int i=0;i<MaxSize;++i){
for(int j=0;j<MaxSize;++j){
if(i==j)
adjMatrix[i][j]=0;
else
adjMatrix[i][j]=INF;
}
}
```
#### 设置具体数值
当给定了具体的带权边时,比如存在一条由 u 指向 v 权重 w 的弧,则更新对应的矩阵单元格:
```cpp
adjMatrix[u][v] = w;
```
需要注意,在处理有向图的情况下只需单方向修改即可;而如果是无向图的话则要同时更改反向的位置即 `adjMatrix[v][u] = w` 。此外,针对自环(self-loop)情形,应保持对角线上仍为0不变[^2]。
阅读全文