Создать график из матрицы смежности - PullRequest
1 голос
/ 01 октября 2019

У меня проблемы с выяснением того, как добавить файл матрицы смежности в граф. Я использую сканер и hasNextLine, чтобы пройти через файл, но не могу понять, как добавить узлы и ребра в мой график. Любая помощь будет огромной.

вот пример файла, из которого я получаю ввод: здесь

Вот мой класс графа:

public class Graph {

    ArrayList<Node> nodeList;
    ArrayList<Edge> edgeList;

    public Graph() {
        nodeList = new ArrayList<Node>();
        edgeList = new ArrayList<Edge>();
    }

    public ArrayList<Node> getNodeList() {
        return nodeList;
    }

    public ArrayList<Edge> getEdgeList() {
        return edgeList;
    }

    public void addNode(Node n) {
        nodeList.add(n);
    }

    public void addEdge(Edge e) {
        edgeList.add(e);
    }

    public String toString() {
        String s = "Graph g.\n";
        if (nodeList.size() > 0) {
            for (Node n : nodeList) {
                // Print node info
                String t = "\nNode " + n.getName() + ", abbrev " + n.getAbbrev() + ", value " + n.getVal() + "\n";
                s = s.concat(t);
            }
            s = s.concat("\n");
        }

        return s;
    }

}

А воткласс, из которого я хочу добавить матрицу.


public class DelivB {

    File inputFile;
    File outputFile;
    PrintWriter output;
    Graph g;

    public DelivB(File in, Graph gr) {
        inputFile = in;
        g = gr;

        // Get output file name.
        String inputFileName = inputFile.toString();
        String baseFileName = inputFileName.substring(0, inputFileName.length() - 4); // Strip off ".txt"
        String outputFileName = baseFileName.concat("_out.txt");
        outputFile = new File(outputFileName);
        if (outputFile.exists()) { // For retests
            outputFile.delete();
        }

        try {
            output = new PrintWriter(outputFile);
        } catch (Exception x) {
            System.err.format("Exception: %s%n", x);
            System.exit(0);
        }
        System.out.println("DelivB:  To be implemented");

        // --------------------------------Deliverable B
        // -------------------------------------------//
        try {
            Scanner scanner = new Scanner(new File(inputFileName));
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());

            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }
}
...