在无向图中,边是双向的,因此构建邻接表时需要考虑两个方向。下面是一个简单的 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(', ')}`);
}
这个代码会遍历所有的边,对于每条边,分别将两个方向的节点添加到对方的邻接表中。这样就构建了一个无向图的邻接表。在打印邻接表时,你可以看到每个节点的邻居节点。这个邻接表是一个表示无向图的数据结构,可用于各种图算法。