From d696d1dbc5aae18decef14058d73e8518713cc4c Mon Sep 17 00:00:00 2001 From: Jan Potocki Date: Mon, 18 Nov 2019 17:27:41 +0100 Subject: [PATCH] Complete shell arguments support - fixed pointers --- pea2plus.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/pea2plus.cpp b/pea2plus.cpp index 23f3c61..649c2f5 100755 --- a/pea2plus.cpp +++ b/pea2plus.cpp @@ -38,7 +38,7 @@ unsigned tabuStopTime = 60; // Domyslna liczba watkow tabu search unsigned tabuThreadsNumber = 2; -void parseTSPLIB_FULL_MATRIX(const char *filename) +void parseTSPLIB_FULL_MATRIX(const char *filename, Graph **graph) { // Jan Potocki 2017 string fileInput; @@ -61,13 +61,13 @@ void parseTSPLIB_FULL_MATRIX(const char *filename) salesmanDataFile >> fileInput; if(fileInput == "FULL_MATRIX") { - if(graph != NULL) - delete graph; + if(*graph != NULL) + delete *graph; if(useListGraph) - graph = new ListGraph(vertex); + *graph = new ListGraph(vertex); else - graph = new ArrayGraph(vertex); + *graph = new ArrayGraph(vertex); do salesmanDataFile >> fileInput; @@ -81,7 +81,7 @@ void parseTSPLIB_FULL_MATRIX(const char *filename) int weight = stoi(fileInput); 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 string fileInput; @@ -128,12 +128,12 @@ void parseTSPLIB_EUC_2D(const char *filename) if(fileInput == "EUC_2D") { if(*graph != NULL) - delete graph; + delete *graph; if(useListGraph) - graph = new ListGraph(vertex); + *graph = new ListGraph(vertex); else - graph = new ArrayGraph(vertex); + *graph = new ArrayGraph(vertex); do salesmanDataFile >> fileInput; @@ -162,7 +162,7 @@ void parseTSPLIB_EUC_2D(const char *filename) float yDiff = yCoord.at(i) - yCoord.at(j); 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) { i++; - parseTSPLIB_FULL_MATRIX(argv[i], graph); + parseTSPLIB_FULL_MATRIX(argv[i], &graph); } else if(strcmp(argv[i], "-feuc2d") == 0) { i++; - parseTSPLIB_EUC_2D(argv[i], graph); + parseTSPLIB_EUC_2D(argv[i], &graph); } else if(strcmp(argv[i], "-h") == 0) { @@ -597,7 +597,7 @@ int main(int argc, char *argv[]) cout << "Podaj nazwe pliku: "; cin >> filename; - parseTSPLIB_FULL_MATRIX(filename.c_str(), graph); + parseTSPLIB_FULL_MATRIX(filename.c_str(), &graph); } break; case 9: @@ -608,7 +608,7 @@ int main(int argc, char *argv[]) cout << "Podaj nazwe pliku: "; cin >> filename; - parseTSPLIB_EUC_2D(filename.c_str(), graph); + parseTSPLIB_EUC_2D(filename.c_str(), &graph); } break; case 0: