编写函数,构造以邻接矩阵表示的图;
时间: 2024-06-11 12:08:45 浏览: 13
以下是Python代码示例:
```python
def build_graph(adj_matrix):
"""
构造以邻接矩阵表示的图
:param adj_matrix: 邻接矩阵,二维列表,0表示无边,1表示有边
:return: 图,字典类型,键为节点名称,值为相邻节点名称列表
"""
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(str(j))
graph[str(i)] = neighbors
return graph
```
使用示例:
```python
adj_matrix = [[0, 1, 1, 0],
[1, 0, 1, 1],
[1, 1, 0, 1],
[0, 1, 1, 0]]
graph = build_graph(adj_matrix)
print(graph)
```
输出结果:
```
{'0': ['1', '2'], '1': ['0', '2', '3'], '2': ['0', '1', '3'], '3': ['1', '2']}
```
相关问题
编写函数,构造以邻接矩阵表示的图;
可以使用以下代码构造以邻接矩阵表示的图:
```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函数用于添加边。可以根据需要修改代码以适应不同的图结构。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)