在无向图中,边是双向的,因此构建邻接表时需要考虑两个方向。下面是一个简单的 JavaScript 代码示例,用于构建无向图的邻接表:
// 示例数据
const links = [{ source: 1, target: 0 },{ source: 2, target: 0 },// ... 其他链接
];// 构建无向图的邻接表
function buildUndirectedGraph(links) {const graph = {};for (const link of links) {// 对于每条边,将两个方向都添加到邻接表中if (!graph[link.source]) {graph[link.source] = [];}graph[link.source].push(link.target);if (!graph[link.target]) {graph[link.target] = [];}graph[link.target].push(link.source);}return graph;
}// 使用示例
const undirectedGraph = buildUndirectedGraph(links);// 打印邻接表
for (const node in undirectedGraph) {const neighbors = undirectedGraph[node];console.log(`Node ${node}: Neighbors ${neighbors.join(', ')}`);
}
这个代码会遍历所有的边,对于每条边,分别将两个方向的节点添加到对方的邻接表中。这样就构建了一个无向图的邻接表。在打印邻接表时,你可以看到每个节点的邻居节点。这个邻接表是一个表示无向图的数据结构,可用于各种图算法。