(Java) Fehler im Java Programm



  • Hallo !!

    Ich bin ziemlich verzweifelt, weil mein Java Proramm nicht kompiliert.
    Der Compiler sagt mir was von unkompatiblen Typen und weitere Fehler.
    Vielleicht könnt Ihr das ja mal für mich kompilieren und die Fehler ausfindig machen. Ich bin noch nicht so lange dabei und völlig verzweifelt.
    Ziel des Programms: durch Backtracking soll der Weg in einem Graphen gefunden werden. Der Graph ist hier die Matrix edges.
    Hier ist mein Programm. Bitte helft mir !!

    mport java.util.*;
    class Graph {
    static int next;
    public static String result = "";
    public static int NODES = 6;

    public static int[][] edges = { { 0, 1, 0, 1, 0, 0 },
    { 0, 0, 1, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 1, 1 },
    { 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 1, 0 } };

    public static boolean find_way (int here, int goal){

    Stack weg;
    weg = new Stack();
    weg.push(here);
    int[]loesung;
    loesung = new int [];
    int j;
    while(!(weg.empty())||(weg.peek() != goal)){
    while(next != NODES) {
    while(edges[(Integer)weg.peek()][next] != 1){
    next++;
    };// while schliessen
    weg.push(next);
    }; // while schliessen
    next = (Integer)weg.peek()+1;
    weg.pop();
    }; // while schliessen
    if(weg.empty()) return false;
    else {
    while(!(weg.empty())){
    loesung = (Integer)weg.peek();
    weg.pop();
    }; // while schliessen
    result = here + "->";
    for(j=java.lang.reflect.Array.getLength(loesung)-1;j>=0;j--){
    result=result + loesung[j]+"->";
    }; // for schliessen
    return true;
    }; // else schliessen

    }; // Methode find_way schiessen

    public static void main (String args[]){

    int start = 0, goal = 4;

    if (find_way(start, goal)){

    System.out.println(result);
    }; // Methode main schliessen
    } // Klasse GraphKeller schliessen
    }



  • oehm ma ne bloede Frage..
    Warum postest du das nich ins Java Board??



  • Vielleicht weil er das nicht findet`?



  • Zwei Probleme: Zum einen Fehlt am anfang deinem int[] eine Größe (= new int[...]). Zum anderen gibt es da ein grundsätzliches Problem mit Collections und ähnlichen Dingen.

    Alles was du in einem Stack z.B. speichenr willst, muss ein Objekt sein. Also musst du einen int immer erst per "new Integer(wert)" in ein Integer-Objekt packen, welches dann in den Stack kann. Genauso musst du beim rausholen das Integer-Objekt wieder nach seinem Wert fragen (integer hat eine intValue-Methode um den Wert wieder rauszuholen). Das machts zwar nicht leicht, aber deswegen wird die Sprache in Java 1.5 auch so erweitert, dass man das ganze so machen kann wie du es probiert hast (Autoboxing).



  • ab in das Java Forum


Anmelden zum Antworten