Hi,
ich habe das Problem das ich ein Tool geschrieben hat welches mir auf einen Graph den Kruskalalgorythmus anwendet. Soweit funktioniert es aber sobald es an die Überprüfung geht ob ein Ring entsteht spielt es verrückt es findet immer nur einen Ring obwohl sich mehrere bilden würden.
Der Graph liegt als zweidimensionales Array vor in dem die Verbindungen gespeichert sind.
matrix[ersterpunkt][zweiterpunkt] = Gewicht der Verbindung
Der Code für die Ringrutine folgt
[/code]
ich habe das Problem das ich ein Tool geschrieben hat welches mir auf einen Graph den Kruskalalgorythmus anwendet. Soweit funktioniert es aber sobald es an die Überprüfung geht ob ein Ring entsteht spielt es verrückt es findet immer nur einen Ring obwohl sich mehrere bilden würden.
Der Graph liegt als zweidimensionales Array vor in dem die Verbindungen gespeichert sind.
matrix[ersterpunkt][zweiterpunkt] = Gewicht der Verbindung
Der Code für die Ringrutine folgt
Code:
public boolean check_ring(int beginn, int matrix2[][])
{
int matrix[][] = new int[matrix2.length][matrix2.length];
for(int c = 0; c < matrix.length; c++)
{
for(int c2 = 0; c2 < matrix.length; c2++)
{
matrix[c][c2] = matrix2[c][c2];
}
}
int position = beginn;
boolean keinkreis = true;
Vector weg = new Vector();
int counter = 0;
int check[] = new int[3];
for(int i2 = 0; i2 < matrix.length*matrix.length; i2++)//((matrix.length*(matrix.length-1))/2)
{
ret:
for(int i=0;i<matrix.length;i++)
{
if(matrix[position][i]!=0)
{
weg.insertElementAt(new Integer(i), counter);
counter++;
matrix[position][i] = 0;
matrix[i][position] = 0;
position = i;
if(position == beginn)
{
//keinkreis = false;
return false;
}
break ret;
}
}
}
return true;
}