【问题标题】:graph implementation with adjacency list java具有邻接表java的图形实现
【发布时间】:2020-04-29 21:30:02
【问题描述】:

我有很多点的二维坐标,例如点 a = x,y

我想使用邻接列表列表进行图形实现,并以最有效的方式连接无向图的某些点(不使用地图或哈希表)

我尝试为名为 point 的点创建一个类,并创建了一个链表数组

私有列表节点[] = new LinkedList[numPoints]

问题是数组将是整数,我不能不存储 x 和 y,我需要知道 x 和 y

【问题讨论】:

    标签: java algorithm graph graph-algorithm adjacency-list


    【解决方案1】:

    你可以试试这个无向图的实现

    public class Graph {
    
        private static final String NEW_LINE = System.lineSeparator();
    
        private final int vertices;
        private int edges;
        private List<Integer>[] adj;
    
        public Graph(int v) {
            if (v < 0)
                throw new IllegalArgumentException("Number of vertices must be non-negative");
            this.vertices = v;
            this.edges = 0;
            adj = (List<Integer>[]) new LinkedList[v];
            for (int i = 0; i < v; i++) {
                adj[v] = new LinkedList<Integer>();
            }
        }
    
        public int getVertices() {
            return vertices;
        }
    
        public int getEdges() {
            return edges;
        }
    
        public void addEdge(int v, int w) {
            adj[v].add(w);
            adj[w].add(v);
            edges++;
        }
    
        public int degree(int v) {
            return adj[v].size();
        }
    
        public Iterable<Integer> adj(int v) {
            return adj[v];
        }
    
        @Override
        public String toString() {
            StringBuilder builder = new StringBuilder();
            for (int v = 0; v < vertices; v++) {
                builder.append(v + ": ");
                for (int w : adj[v]) {
                    builder.append(w + " ");
                }
                builder.append(NEW_LINE);
            }
            return builder.toString();
        }
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多