温馨提示×

如何自定义java邻接表类

小樊
81
2024-09-15 02:11:48
栏目: 编程语言

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

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

0