如何自定义java邻接表类

   2024-09-30 4730
核心提示:要自定义一个Java邻接表类,首先需要了解邻接表的基本概念。邻接表是一种表示图的数据结构,它通过映射每个顶点到其相邻顶点的列

要自定义一个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());    }}

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

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号