EgtNumKernel :
- piccole migliorie.
This commit is contained in:
+5
-5
@@ -67,7 +67,7 @@ Dijkstra::SetGraph( DBLMATRIX AdjMatrix, int nDestInd) {
|
||||
|
||||
// per sicurezza assegno agli elementi sulla diagonale la massima distanza
|
||||
for ( int i = 0 ; i < nRows ; ++ i)
|
||||
m_AdjMatrix[i][i] = MAXDIST ;
|
||||
m_AdjMatrix[i][i] = WEIGHT_NO_ADJ ;
|
||||
|
||||
// il grafo è valido
|
||||
m_bValid = true ;
|
||||
@@ -100,7 +100,7 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
|
||||
for ( int i = 0 ; i < DIM ; ++ i) {
|
||||
sNode_toCheck.insert( i) ;
|
||||
vNodePath[i] = -1 ;
|
||||
vDists[i] = MAXDIST ;
|
||||
vDists[i] = WEIGHT_NO_ADJ ;
|
||||
}
|
||||
// il nodo sorgente ( in posizione zero) ha distanza nulla
|
||||
vDists[0] = 0. ;
|
||||
@@ -110,7 +110,7 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
|
||||
// cerco il nodo ( tra quelli non ancora visitati) a cui è associata la distanza minima
|
||||
// ( alla prima iterazione il nodo è lo 0)
|
||||
int nMinInd = -1 ;
|
||||
double dDistRef = MAXDIST - 1 ;
|
||||
double dDistRef = WEIGHT_NO_ADJ - 1 ;
|
||||
for ( int i = 0 ; i < DIM ; ++ i) {
|
||||
// cerco un nodo i disponibile
|
||||
set<int>::iterator iter = sNode_toCheck.find( i) ;
|
||||
@@ -122,8 +122,8 @@ Dijkstra::GetPath( INTVECTOR& vNodePath)
|
||||
nMinInd = i ;
|
||||
}
|
||||
}
|
||||
// se nodo non trovato o coincidente alla sorgente ( se presente), allora il percorso è terminato
|
||||
if ( nMinInd == -1)
|
||||
// se nodo non trovato o coincidente alla destinazione ( se presente), allora il percorso è terminato
|
||||
if ( nMinInd == -1 || nMinInd == m_nDest)
|
||||
break ;
|
||||
|
||||
// escludo il nodo i-esimo trovato
|
||||
|
||||
@@ -36,5 +36,3 @@ class Dijkstra : public IDijkstra
|
||||
bool m_bValid ;
|
||||
} ;
|
||||
|
||||
const double DIST_NO_ADJ = 1073741823U ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user