@Override public Collection<Edge> getEdges() { Collection<Edge> set = new LinkedList<>(); if (digraph) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (graph[i][j] != 0.0) { Edge edge = new Edge(); edge.v1 = i; edge.v2 = j; edge.weight = graph[i][j]; set.add(edge); } } } } else { for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { if (graph[i][j] != 0.0) { Edge edge = new Edge(); edge.v1 = i; edge.v2 = j; edge.weight = graph[i][j]; set.add(edge); } } } } return set; }
@Override public Edge getEdge(int source, int target) { if (graph[source][target] == 0.0) { return null; } Edge edge = new Edge(); edge.v1 = source; edge.v2 = target; edge.weight = graph[source][target]; return edge; }
@Override public Collection<Edge> getEdges(int vertex) { Collection<Edge> set = new LinkedList<>(); for (int j = 0; j < n; j++) { if (graph[vertex][j] != 0.0) { Edge edge = new Edge(); edge.v1 = vertex; edge.v2 = j; edge.weight = graph[vertex][j]; set.add(edge); } } return set; }