java输出邻接链表
时间: 2024-11-17 21:13:42 浏览: 7
数据结构与算法复习(Java):排序、字符串、数组、链表、二分查找、二叉树.zip
在Java中,邻接链表通常用于表示图数据结构,特别是无向图或有向图中的边集合。每个节点(顶点)都有一个指向其相邻节点的链表链接。下面是一个简单的例子,展示如何创建和输出邻接链表:
```java
// 定义一个Node类,代表链表中的节点
class Node {
int vertex; // 节点值
Node next; // 指向下一个节点的引用
public Node(int vertex) {
this.vertex = vertex;
this.next = null;
}
}
// 邻接链表类,存储节点并提供操作方法
class AdjacencyList {
private Node head;
// 添加节点到链表
public void addEdge(int src, int dest) {
Node newNode = new Node(dest);
if (head == null) {
head = newNode;
} else {
Node current = head;
while (current.next != null && current.vertex != src) {
current = current.next;
}
if (current.vertex == src) {
current.next = newNode;
} else {
System.out.println("Invalid edge: " + src + " -> " + dest);
}
}
}
// 打印链表
public void printList() {
Node temp = head;
while (temp != null) {
System.out.print(temp.vertex + " -> ");
temp = temp.next;
}
System.out.println("NULL");
}
}
public class Main {
public static void main(String[] args) {
AdjacencyList adjList = new AdjacencyList();
// 假设我们有一个无向图,添加一些边
adjList.addEdge(0, 1);
adjList.addEdge(0, 2);
adjList.addEdge(1, 2);
adjList.addEdge(2, 0);
// 输出邻接链表
adjList.printList(); // 应该输出类似:0 -> 1 -> 2 -> NULL, 1 -> 0 -> 2 -> NULL, 2 -> 0 -> 1 -> NULL
}
}
```
在这个例子中,`AdjacencyList`类维护了一个头节点,并提供了添加边(`addEdge`)和打印链表(`printList`)的方法。当你运行`main`函数,会显示每个顶点及其相连的邻居。
阅读全文