Hallo liebe Forummitglieder,
ich habe hier ein kleines Problem mit meinem Algorithmus:
ich will einen Graphen in eine Adjazenzmatrix abspeichern nur bekomme ich komische Fehlermeldungen.
Und weiß wirklich nicht wie ich diese beheben kann, denn die scheinen mir unlogisch.
Die Datei zum einlesen hat folgende Form:
anzahl knoten
anzahl kanten
startknoten
zielknoten
gerichtete kante im format v1:v2: Gewicht
Wenn ich in der AdMatrix die gewichte setzen will sage ich matrix [v1][v2]= gewicht
aber mein algorithmus macht da probleme. gibt eine NumberFormatException zurück.
Bitte helft mir ich weiß sonst nicht wie ich das problem lösen kann
ich habe hier ein kleines Problem mit meinem Algorithmus:
ich will einen Graphen in eine Adjazenzmatrix abspeichern nur bekomme ich komische Fehlermeldungen.
Und weiß wirklich nicht wie ich diese beheben kann, denn die scheinen mir unlogisch.
Java:
import java.io.*;
import java.util.*;
import java.lang.*;
public class Graph {
public static void main (String [] args){
Graph test = new Graph();
test.getGraph("input.txt");
}
public int n; // Knotenanzahl
public int m; // Kantenanzahl
static public int start, ziel; // Startknoten, Zielknoten
public int [][] matrix;
public Graph (){}
/* EINLESEN */
public int [][] getGraph (String datei){
try {
File input = new File(datei);
FileReader in = new FileReader(input);
BufferedReader reader = new BufferedReader(in);
n = Integer.parseInt(reader.readLine()); // erste Zeile einlesen
m = Integer.parseInt(reader.readLine()); // zweite Zeile einlesen
start = Integer.parseInt(reader.readLine()); // Startknoten einlesen
ziel = Integer.parseInt(reader.readLine()); // Zielknoten einlesen
matrix = new int [n][n]; // Bilde Adjazenzmatrix mit n Zeilen und n Spalten
for (int k=0; k<n; k++){
for (int l=0; l<n;l++){
matrix[k][l]=0;
}
} // Setze in dieser vorerst alle Einträge gleich Null
for (int i = 0; i<=m; i++){
String s = reader.readLine();
String kante [] = s.split(":");
int k1= Integer.parseInt(kante[0]);
int k2 = Integer.parseInt(kante[1]);
int gewicht = Integer.parseInt(kante[2]);
//System.out.println(k1+""+k2+""+gewicht);
matrix [k1][k2] = gewicht;
/matrix [k2][k1] = gewicht;
//System.out.println(matrix[k2][k1]);
}
for (int j =0; j<n;j++){
for (int i =0; i<n; i++){
System.out.println( matrix [j][i]);
}
}
reader.close();
}
catch (IOException e){ System.out.println ("Fehler beim Einlesen der Datei oder Datei nicht gefunden");}
catch (NullPointerException e){ System.out.println(" NullPointerException in Einlesen ohne Struktur");}
return matrix;
}
}
Die Datei zum einlesen hat folgende Form:
anzahl knoten
anzahl kanten
startknoten
zielknoten
gerichtete kante im format v1:v2: Gewicht
Wenn ich in der AdMatrix die gewichte setzen will sage ich matrix [v1][v2]= gewicht
aber mein algorithmus macht da probleme. gibt eine NumberFormatException zurück.
Bitte helft mir ich weiß sonst nicht wie ich das problem lösen kann
Zuletzt bearbeitet von einem Moderator: