You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将给定adjacency matrix(邻接矩阵)转换为目标格式adjacency list(邻接表)

邻接矩阵转邻接表实现方法

你提供的是无向带权图的邻接矩阵,矩阵中matrix[i][j]的数值代表节点i到节点j的边权,值为0代表两个节点之间没有直接连通的边,转换逻辑非常直接:

核心步骤

  • 初始化一个长度和邻接矩阵行数相等的空列表作为邻接表,列表的每个下标对应一个源节点,对应位置存储该节点的所有出边信息
  • 遍历邻接矩阵的每一行,当前行号即为源节点u
  • 对当前行的每一列进行遍历,当前列号即为目标节点v
  • 若当前位置的数值matrix[u][v]大于0,说明u到v存在有效边,将(v, matrix[u][v])元组插入到邻接表下标为u的列表中即可

代码示例(Python)

def adjacency_matrix_to_list(matrix):
    node_count = len(matrix)
    adjacency_list = [[] for _ in range(node_count)]
    for u in range(node_count):
        for v in range(node_count):
            weight = matrix[u][v]
            if weight > 0:
                adjacency_list[u].append((v, weight))
    return adjacency_list

# 代入你的输入测试
input_matrix = [[0, 1, 0, 4], [1, 0, 3, 1], [0, 3, 0, 2], [4, 1, 2, 0]]
result = adjacency_matrix_to_list(input_matrix)
print(result)
# 输出结果与你给出的目标完全一致:[[(1, 1), (3, 4)], [(0, 1), (2, 3), (3, 1)], [(1, 3), (3, 2)], [(0, 4), (1, 1), (2, 2)]]

内容的提问来源于stack exchange,提问作者Levin Kent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:15:03