Complete shell arguments support - fixed pointers
This commit is contained in:
+15
-15
@@ -38,7 +38,7 @@ unsigned tabuStopTime = 60;
|
|||||||
// Domyslna liczba watkow tabu search
|
// Domyslna liczba watkow tabu search
|
||||||
unsigned tabuThreadsNumber = 2;
|
unsigned tabuThreadsNumber = 2;
|
||||||
|
|
||||||
void parseTSPLIB_FULL_MATRIX(const char *filename)
|
void parseTSPLIB_FULL_MATRIX(const char *filename, Graph **graph)
|
||||||
{
|
{
|
||||||
// Jan Potocki 2017
|
// Jan Potocki 2017
|
||||||
string fileInput;
|
string fileInput;
|
||||||
@@ -61,13 +61,13 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
|||||||
salesmanDataFile >> fileInput;
|
salesmanDataFile >> fileInput;
|
||||||
if(fileInput == "FULL_MATRIX")
|
if(fileInput == "FULL_MATRIX")
|
||||||
{
|
{
|
||||||
if(graph != NULL)
|
if(*graph != NULL)
|
||||||
delete graph;
|
delete *graph;
|
||||||
|
|
||||||
if(useListGraph)
|
if(useListGraph)
|
||||||
graph = new ListGraph(vertex);
|
*graph = new ListGraph(vertex);
|
||||||
else
|
else
|
||||||
graph = new ArrayGraph(vertex);
|
*graph = new ArrayGraph(vertex);
|
||||||
|
|
||||||
do
|
do
|
||||||
salesmanDataFile >> fileInput;
|
salesmanDataFile >> fileInput;
|
||||||
@@ -81,7 +81,7 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
|||||||
int weight = stoi(fileInput);
|
int weight = stoi(fileInput);
|
||||||
|
|
||||||
if(i != j)
|
if(i != j)
|
||||||
graph->addEdge(i, j, weight);
|
(*graph)->addEdge(i, j, weight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void parseTSPLIB_EUC_2D(const char *filename)
|
void parseTSPLIB_EUC_2D(const char *filename, Graph **graph)
|
||||||
{
|
{
|
||||||
// Jan Potocki 2017
|
// Jan Potocki 2017
|
||||||
string fileInput;
|
string fileInput;
|
||||||
@@ -128,12 +128,12 @@ void parseTSPLIB_EUC_2D(const char *filename)
|
|||||||
if(fileInput == "EUC_2D")
|
if(fileInput == "EUC_2D")
|
||||||
{
|
{
|
||||||
if(*graph != NULL)
|
if(*graph != NULL)
|
||||||
delete graph;
|
delete *graph;
|
||||||
|
|
||||||
if(useListGraph)
|
if(useListGraph)
|
||||||
graph = new ListGraph(vertex);
|
*graph = new ListGraph(vertex);
|
||||||
else
|
else
|
||||||
graph = new ArrayGraph(vertex);
|
*graph = new ArrayGraph(vertex);
|
||||||
|
|
||||||
do
|
do
|
||||||
salesmanDataFile >> fileInput;
|
salesmanDataFile >> fileInput;
|
||||||
@@ -162,7 +162,7 @@ void parseTSPLIB_EUC_2D(const char *filename)
|
|||||||
float yDiff = yCoord.at(i) - yCoord.at(j);
|
float yDiff = yCoord.at(i) - yCoord.at(j);
|
||||||
int weight = nearbyint(sqrt(xDiff * xDiff + yDiff * yDiff));
|
int weight = nearbyint(sqrt(xDiff * xDiff + yDiff * yDiff));
|
||||||
|
|
||||||
graph->addEdge(i, j, weight);
|
(*graph)->addEdge(i, j, weight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -219,12 +219,12 @@ int main(int argc, char *argv[])
|
|||||||
else if(strcmp(argv[i], "-fmatrix") == 0)
|
else if(strcmp(argv[i], "-fmatrix") == 0)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
parseTSPLIB_FULL_MATRIX(argv[i], graph);
|
parseTSPLIB_FULL_MATRIX(argv[i], &graph);
|
||||||
}
|
}
|
||||||
else if(strcmp(argv[i], "-feuc2d") == 0)
|
else if(strcmp(argv[i], "-feuc2d") == 0)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
parseTSPLIB_EUC_2D(argv[i], graph);
|
parseTSPLIB_EUC_2D(argv[i], &graph);
|
||||||
}
|
}
|
||||||
else if(strcmp(argv[i], "-h") == 0)
|
else if(strcmp(argv[i], "-h") == 0)
|
||||||
{
|
{
|
||||||
@@ -597,7 +597,7 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Podaj nazwe pliku: ";
|
cout << "Podaj nazwe pliku: ";
|
||||||
cin >> filename;
|
cin >> filename;
|
||||||
|
|
||||||
parseTSPLIB_FULL_MATRIX(filename.c_str(), graph);
|
parseTSPLIB_FULL_MATRIX(filename.c_str(), &graph);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
@@ -608,7 +608,7 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Podaj nazwe pliku: ";
|
cout << "Podaj nazwe pliku: ";
|
||||||
cin >> filename;
|
cin >> filename;
|
||||||
|
|
||||||
parseTSPLIB_EUC_2D(filename.c_str(), graph);
|
parseTSPLIB_EUC_2D(filename.c_str(), &graph);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user