Ciao a tutti! sto lavorando su un progetto che utilizza come struttura un grafo e la ricerca di path su questo grafo. purtroppo di tanto in tanto mi si presenta questo errore e non capisco il perchè in quanto:
1) su 10 volte che lancio 8 non da problemi e 2 si... (se fosse un errore del codice non ci sarebbero esiti positivi! )
2) ho provato ad aumentare la memoria a disposizione di eclipse settando i parametri come già discusso in un altro topic, ma niente... sempre lo stesso errore..!
il problema principale è data da una funzione findPath di cui vi posto il codice:
codice:
public List<Integer> findPath(int node1, int node2)
{
inRange(node1);
inRange(node2);
int root = node1;
UndirGraph tree = new UndirGraph(size());
boolean[] inS = new boolean[size()];
List<Integer> Q = new LinkedList<Integer>();
inS[root - 1] = true;
Q.addAll(getNeighbors(root)); // Put
while (!Q.isEmpty())
{
int v = Q.remove(0); // Get
if(v < 0)
root = -v; // sets new root node
else if(v == node2)
{
tree.add(root, v);
// go back from node2 to node1 on the tree
List<Integer> result = new LinkedList<Integer>();
result.add(0, node2);
int node = node2;
while (node != node1)
{
for (int i = 1; i <= tree.size(); i++)
if(tree.edge(i, node))
{
node = i;
break;
}
result.add(0, node);
}
return result;
} else if(!inS[v - 1])
{
tree.add(root, v);
inS[v - 1] = true;
Q.add(new Integer(-v)); // adds father before his neighbors
Q.addAll(getNeighbors(v)); // Put
}
}
// there is no path from node1 to node2
return new LinkedList<Integer>();
}
io non so cosa fare... qualcuno può darmi una mano per favore?? grazie mille!!
PS. il grafo che sto usando è piccolo!! solo 36 nodi