import java.util.ArrayList; /** * Adjacency matrix implementation of a graph * @author gtowell * Created: Dec 1, 2021 */ public class AdjMatrix { //The adjacency matrix double[][] aMatrix; ArrayList nodes; /** * Constructor, taking a list of the node payloads. * Once this list of set, it cannot be changed. * @param nds the list of node payloads */ public AdjMatrix(ArrayList nds) { nodes = new ArrayList<>(); for (M nm : nds) { nodes.add(nm); } aMatrix = new double[nodes.size()][nodes.size()]; for (int i=0; i=0) { sb.append(String.format("[%s->%s:%.2f]", nodes.get(i), nodes.get(j), aMatrix[i][j])); } } } return sb.toString(); } public static void main(String[] args) { ArrayList al = new ArrayList<>(); al.add("A"); al.add("B"); al.add("C"); al.add("D"); AdjMatrix amat = new AdjMatrix<>(al); amat.addEdge("A", "B"); amat.addEdge("A", "D"); amat.addEdge("B", "D"); amat.addEdge("C", "D"); amat.addEdge("C", "B"); amat.addEdge("C", "A"); amat.addEdge("D", "B"); System.out.println(amat); } }