package wektoryzacja; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.List; public class ZapisGrafuWektoryzacji { public Graf utworzGraf(List> krawedzie) { Graf graf = new Graf(); for (List krzywa : krawedzie) { for (int[] wierzcholek : krzywa) { graf.dodajWierzcholek(wierzcholek); } } //List wierzcholki = graf.pobierzWierzcholki(); //for (int[] wierzcholek : wierzcholki) { //System.out.println(wierzcholek[0] + ", " + wierzcholek[1]); //} for (List krzywa : krawedzie) { for (int i = 0; i < krzywa.size() - 1; i++) { graf.dodajKrawedz(krzywa.get(i), krzywa.get(i + 1)); } } return graf; } public boolean zapiszGraf(Graf graf, File plik) { PrintWriter out = null; try { out = new PrintWriter(new FileWriter(plik)); List wierzcholki = graf.pobierzWierzcholki(); out.println(wierzcholki.size()); for (int i = 0; i < wierzcholki.size(); i++) { int[] w = wierzcholki.get(i); out.println(w[0] + " " + w[1]); } for (int i = 0; i < wierzcholki.size(); i++) { List krawedzie = graf.E(wierzcholki.get(i)); for (Integer krawedz : krawedzie) { out.print(krawedz + " "); } out.println(); } out.flush(); out.close(); return true; } catch (IOException ioe) { if (out != null) { try { out.close(); } catch (Exception ex) {}; } ioe.printStackTrace(); } return false; } public boolean zapisz(List> krawedzie, File plik) { Graf graf = this.utworzGraf(krawedzie); return this.zapiszGraf(graf, plik); } }