如何自定义java邻接表类

avatar
作者
猴君
阅读量:0

要自定义一个Java邻接表类,首先需要了解邻接表的基本概念。邻接表是一种表示图的数据结构,它通过映射每个顶点到其相邻顶点的列表来表示图。在Java中,可以使用Map和List来实现邻接表。

以下是一个简单的邻接表类的实现:

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;  public class AdjacencyList<T> {     // 使用Map和List来存储邻接表     private Map<T, List<T>> adjacencyList = new HashMap<>();      // 添加顶点     public void addVertex(T vertex) {         if (!adjacencyList.containsKey(vertex)) {             adjacencyList.put(vertex, new ArrayList<>());         }     }      // 添加边     public void addEdge(T from, T to) {         if (!adjacencyList.containsKey(from)) {             addVertex(from);         }         if (!adjacencyList.containsKey(to)) {             addVertex(to);         }         adjacencyList.get(from).add(to);     }      // 获取顶点的相邻顶点列表     public List<T> getAdjacentVertices(T vertex) {         return adjacencyList.get(vertex);     }      // 获取所有顶点     public List<T> getVertices() {         return new ArrayList<>(adjacencyList.keySet());     } } 

这个类可以用于表示任何类型的图,例如无向图、有向图等。你可以根据需要对这个类进行扩展,例如添加删除顶点和边的方法、检查图中是否存在某个顶点或边等。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!