如果有人可以幫助我完成此任務,我將不勝感激。任務:實現一個Graph類(有向和加權),而無需使用Java的標準Graph-class。使用adjacencyList或adjMatrix都沒關系我的密碼import java.util.*;public class Graph { static class Edge { char vA; char vB; double weight; Edge(char a, char b, double weight) { vA = a; vB = b; this.weight = weight; } void setWeight(double w) { weight = w; } double getWeight() { return weight; } } private Map<Character, LinkedList<Character>> edges = new HashMap<>(); void addNode(char node) { if (!edges.containsKey(node)) { edges.put(node, new LinkedList<Character>()); } } public void addEdge(char a, char b, double weight) { Edge e = new Edge(a, b, weight); a = e.vA; b = e.vB; e.setWeight(weight); edges.get(a).add(b); } void printNodes() { System.out.println(edges.keySet()); } void printEdges() { System.out.println(edges.values()); } void dfs() { //TODO } void dijkstra(char startNodeID){ } public static void main(String... args) { Graph graph = new Graph(); graph.addNode('A'); graph.addNode('B'); graph.addNode('C'); graph.addNode('D'); graph.addNode('E'); graph.addEdge('A', 'B', 2); graph.addEdge('A', 'C', 3); graph.addEdge('B', 'D', 6); graph.addEdge('C', 'D', 8); graph.addEdge('C', 'E', 9); graph.printEdges(); graph.printNodes(); }}問題:如何在EdgeMap的LinkedList中添加邊?我的方法addEdges有什么問題?如何打印邊緣?
添加回答
舉報
0/150
提交
取消