/* Wichtig: in der Form {A,B,C,D,E,F,G}*/ int []StadtA ={0,4,9,10000,10,6,10000}; int []StadtB ={4,0,3,10000,10000,10000,5}; int []StadtC ={9,3,0,8,10000,10000,6}; int []StadtD ={10000,10000,8,0,3,9,3}; int []StadtE ={10,10000,10000,3,0,10000,10000}; int []StadtF ={6,10000,10000,9,10000,0,7}; int []StadtG ={10000,5,6,3,10000,7,0}; int []auswahl =new int[7]; int tempPfad =0; int lauf =1; int zähler =0; int set =1; int k =0; int letztesElement =0; int tempElement =0; int neuerWert =0; int []letzteStadt =new int [20]; ArrayList Pfad=new ArrayList(); Pfad.add(0); /*beginn der Prozedur*/ while(lauf==1){ switch(zähler){ case 0:for(int i=1;i=auswahl[i] && auswahl[i]!=0 || tempPfad==0){ if(set==1){ tempPfad=auswahl[i]; zähler=i; } } //zurücksetzten der Variable set für den nächsten Durchlauf set=1; } //hinzufügen der besuchten Stadt //============================================================================= //benötigt man zur Pfadmodifizierung letztesElement=letztesElement+tempPfad; Pfad.add(letztesElement); //Pfad wir, falls nötig, modifiziert um die kürzeste Strecke zu suchen for(int i=1; i=1 && auswahl[letzteStadt[i]]!=0){ neuerWert=Pfad.get(i)+auswahl[letzteStadt[i]]; for(int j=i;j<=Pfad.size();j++){ Pfad.remove(Pfad.size()-1); } Pfad.add(neuerWert); Pfad.add(neuerWert+tempPfad); } } letzteStadt[k+1]=zähler; tempElement=tempElement+tempPfad; k++; //System.out.println("auswahl :"+tempElement); tempPfad=0; //Prüfung ob Stadt breits erreicht wurde //============================================================================== for(int i=0;i
ausführen