编写函数,构造以邻接矩阵表示的图; 
时间: 2023-05-20 11:01:32 浏览: 22
可以使用以下代码构造以邻接矩阵表示的图:
```python
def create_graph(adj_matrix):
graph = {}
for i in range(len(adj_matrix)):
neighbors = []
for j in range(len(adj_matrix[i])):
if adj_matrix[i][j] == 1:
neighbors.append(j)
graph[i] = neighbors
return graph
```
其中,adj_matrix 是一个二维数组,表示邻接矩阵。函数返回一个字典,表示图的邻接表。
相关问题
利用C语言编写函数,构造以邻接矩阵表示的图;
可以使用以下代码构造邻接矩阵表示的图:
```
#define MAXV 100 // 最大顶点数
typedef struct {
int edges[MAXV][MAXV]; // 邻接矩阵
int n; // 顶点数
} Graph;
void initGraph(Graph *g, int n) {
int i, j;
g->n = n;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
g->edges[i][j] = 0; // 初始化为0
}
}
}
void addEdge(Graph *g, int u, int v) {
g->edges[u][v] = 1;
g->edges[v][u] = 1; // 无向图需要添加反向边
}
```
其中,initGraph函数用于初始化图,addEdge函数用于添加边。可以根据需要修改代码以适应不同的图结构。
MATLAB写出邻接矩阵A并用function计算出可达矩阵M
好的,以下是一个基于 function 的 MATLAB 代码示例,用于计算给定有向图的可达矩阵:
```matlab
% 假设有一个有向图,其边集为 edges,
% 节点数为 n,请编写一个 function,用于计算该图的可达矩阵
function M = compute_reachable_matrix(n, edges)
% 构造邻接矩阵 A
A = zeros(n);
for i = 1:size(edges, 1)
A(edges(i, 1), edges(i, 2)) = 1;
end
% 初始化可达矩阵 M 为 A
M = A;
% 计算可达矩阵 M
while true
M_new = M + M * A;
if isequal(M_new, M)
break;
end
M = M_new;
M(M ~= 0) = 1;
end
end
```
这个 function 接受两个参数:节点数 n 和边集 edges。其中,edges 是一个 m x 2 的矩阵,每一行表示一条有向边,第一列为起始节点,第二列为终止节点。该 function 的实现方法与前面的代码示例类似,只是将计算可达矩阵的部分封装成了一个 function,并将邻接矩阵 A 的构造放在了函数内部。
相关推荐








