From aa16fc2be9cce83f20f2e35804956ac7cb5d5603 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 21 Apr 2025 12:43:57 +0200 Subject: use class MatrixGraph --- .../bachelorizer/model/Combi.java" | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'dk/abcdefghijklmnopqrstuvxyzæøå/bachelorizer/model') diff --git "a/dk/abcdefghijklmnopqrstuvxyz\303\246\303\270\303\245/bachelorizer/model/Combi.java" "b/dk/abcdefghijklmnopqrstuvxyz\303\246\303\270\303\245/bachelorizer/model/Combi.java" index cf2fe91..6feea62 100644 --- "a/dk/abcdefghijklmnopqrstuvxyz\303\246\303\270\303\245/bachelorizer/model/Combi.java" +++ "b/dk/abcdefghijklmnopqrstuvxyz\303\246\303\270\303\245/bachelorizer/model/Combi.java" @@ -6,6 +6,7 @@ package dk.abcdefghijklmnopqrstuvxyzæøå.bachelorizer.model; import com.example.portfolio3.AdjListGraph; import com.example.portfolio3.Graph; import com.example.portfolio3.GraphAlgorithms; +import com.example.portfolio3.MatrixGraph; /// Combi - static sample dataset of course combinations /// @@ -23,9 +24,30 @@ public final class Combi { /// @param path path to data file private Combi(final String path) { - g = new AdjListGraph(); + // read into temporary graph to resolve vertice count + // + // use Adjacency List Representation: + // * cheap to bootstrap (done once) + // * simple to count vertices (done once): O(1) + Graph _g = new AdjListGraph(); + GraphAlgorithms.readGraph(_g, path); + Integer _vertice_count = _g.vertices().size(); + + // read into final graph + // + // use Adjacency Matrix Representation: + // * expensive to bootstrap (done once) + // * simple to add edges but needs vertice count + // * simple to get edges (done repeatedly): O(1) + // + // TODO: avoid reading and parsing file twice + Graph g = new MatrixGraph(_vertice_count); GraphAlgorithms.readGraph(g, path); GraphAlgorithms.printGraph(g); + + // release temporary variables for garbage collection + _g = null; + _vertice_count = null; } /// JVM entry point -- cgit v1.2.3