分别用r语言和java邻接表创建无向图
时间: 2024-01-01 15:54:21 浏览: 73
无向图的邻接表表示
4星 · 用户满意度95%
R语言创建邻接表无向图:
```r
# 创建一个空的邻接表
graph <- list()
# 添加节点
graph[[1]] <- c(2, 4) # 节点1有连向节点2和节点4的边
graph[[2]] <- c(1, 3, 4) # 节点2有连向节点1、3、4的边
graph[[3]] <- c(2, 4) # 节点3有连向节点2、4的边
graph[[4]] <- c(1, 2, 3) # 节点4有连向节点1、2、3的边
# 打印邻接表
graph
```
Java创建邻接表无向图:
```java
import java.util.ArrayList;
public class Graph {
private int V;
private ArrayList<ArrayList<Integer>> adjListArray;
// 构造函数
public Graph(int V) {
this.V = V;
adjListArray = new ArrayList<ArrayList<Integer>>(V);
for (int i = 0; i < V; i++) {
adjListArray.add(new ArrayList<Integer>());
}
}
// 添加边
public void addEdge(int src, int dest) {
adjListArray.get(src).add(dest);
adjListArray.get(dest).add(src);
}
// 打印邻接表
public void printGraph() {
for (int i = 0; i < V; i++) {
System.out.print("Vertex " + i + ":");
for (Integer vertex : adjListArray.get(i)) {
System.out.print(" -> " + vertex);
}
System.out.println();
}
}
public static void main(String[] args) {
Graph graph = new Graph(5); // 创建一个5个节点的图
graph.addEdge(0, 1);
graph.addEdge(0, 4);
graph.addEdge(1, 2);
graph.addEdge(1, 3);
graph.addEdge(1, 4);
graph.addEdge(2, 3);
graph.addEdge(3, 4);
graph.printGraph();
}
}
```
阅读全文