rendered paste bodyimport java.io.*;
import java.util.*;
import java.util.ArrayList;
public class HamiltonPath
{
public static final int beginPoint=0;
public static final int size=13;
public static int distance[][] = new int[size][size];
public static int path[] = new int[size];
public static void main(String[] args)
{
int a, b, c;
try
{
String file_name="graafhamilton.txt";
Scanner invoer= new Scanner(new File(file_name));
while (invoer.hasNext() )
{
a=invoer.nextInt();
b=invoer.nextInt();
c=invoer.nextInt();
distance[a-1][b-1]=1;
distance[b-1][a-1]=1;
}
invoer.close();
}
catch (Exception e) { };
path[0] = beginPoint;
hamiltonPath(0);
}
public static void hamiltonPath(int index)
{
if (feasible(index))
{
if (index == size - 1)
{
System.out.print("A solution is: ");
for (int i = 0; i <= index; i++)
{
int k = path[i] + 1;
System.out.print(" " + k);
}
System.out.println( );
}
else
{
for (int j = 0; j < size; j++)
{
path[index+1] = j; //try all vertices as next one
hamiltonPath(index+1);
}
}
}
}
public static boolean feasible(int index)
{
if (index == 0)
return true;
if (index > 0 && distance[path[index-1]][path[index]] == 0)
return false;
int j = 0;
while (j < index && path[j] != path[index])
j++;
return (j == index);
}
}
----
1 2 10
2 3 6
1 4 6
1 5 4
4 5 3
3 6 7
5 6 9
4 7 5
7 8 3
5 8 7
4 8 4
7 13 6
11 13 14
8 11 4
11 10 4
12 10 3
9 12 5
6 9 7
graafhamilton.txt ^^