瀏覽代碼

Complete shell arguments support - fixed pointers

Jan Potocki 5 年之前
父節點
當前提交
d696d1dbc5
共有 1 個檔案被更改,包括 15 行新增15 行删除
  1. 15
    15
      pea2plus.cpp

+ 15
- 15
pea2plus.cpp 查看文件

38
 // Domyslna liczba watkow tabu search
38
 // Domyslna liczba watkow tabu search
39
 unsigned tabuThreadsNumber = 2;
39
 unsigned tabuThreadsNumber = 2;
40
 
40
 
41
-void parseTSPLIB_FULL_MATRIX(const char *filename)
41
+void parseTSPLIB_FULL_MATRIX(const char *filename, Graph **graph)
42
 {
42
 {
43
     // Jan Potocki 2017
43
     // Jan Potocki 2017
44
     string fileInput;
44
     string fileInput;
61
         salesmanDataFile >> fileInput;
61
         salesmanDataFile >> fileInput;
62
         if(fileInput == "FULL_MATRIX")
62
         if(fileInput == "FULL_MATRIX")
63
         {
63
         {
64
-            if(graph != NULL)
65
-                delete graph;
64
+            if(*graph != NULL)
65
+                delete *graph;
66
 
66
 
67
             if(useListGraph)
67
             if(useListGraph)
68
-                graph = new ListGraph(vertex);
68
+                *graph = new ListGraph(vertex);
69
             else
69
             else
70
-                graph = new ArrayGraph(vertex);
70
+                *graph = new ArrayGraph(vertex);
71
 
71
 
72
             do
72
             do
73
                 salesmanDataFile >> fileInput;
73
                 salesmanDataFile >> fileInput;
81
                     int weight = stoi(fileInput);
81
                     int weight = stoi(fileInput);
82
 
82
 
83
                     if(i != j)
83
                     if(i != j)
84
-                        graph->addEdge(i, j, weight);
84
+                        (*graph)->addEdge(i, j, weight);
85
                 }
85
                 }
86
             }
86
             }
87
 
87
 
103
     }
103
     }
104
 }
104
 }
105
 
105
 
106
-void parseTSPLIB_EUC_2D(const char *filename)
106
+void parseTSPLIB_EUC_2D(const char *filename, Graph **graph)
107
 {
107
 {
108
     // Jan Potocki 2017
108
     // Jan Potocki 2017
109
     string fileInput;
109
     string fileInput;
128
         if(fileInput == "EUC_2D")
128
         if(fileInput == "EUC_2D")
129
         {
129
         {
130
             if(*graph != NULL)
130
             if(*graph != NULL)
131
-                delete graph;
131
+                delete *graph;
132
 
132
 
133
             if(useListGraph)
133
             if(useListGraph)
134
-                graph = new ListGraph(vertex);
134
+                *graph = new ListGraph(vertex);
135
             else
135
             else
136
-                graph = new ArrayGraph(vertex);
136
+                *graph = new ArrayGraph(vertex);
137
 
137
 
138
             do
138
             do
139
                 salesmanDataFile >> fileInput;
139
                 salesmanDataFile >> fileInput;
162
                         float yDiff = yCoord.at(i) - yCoord.at(j);
162
                         float yDiff = yCoord.at(i) - yCoord.at(j);
163
                         int weight = nearbyint(sqrt(xDiff * xDiff + yDiff * yDiff));
163
                         int weight = nearbyint(sqrt(xDiff * xDiff + yDiff * yDiff));
164
 
164
 
165
-                        graph->addEdge(i, j, weight);
165
+                        (*graph)->addEdge(i, j, weight);
166
                     }
166
                     }
167
                 }
167
                 }
168
             }
168
             }
219
             else if(strcmp(argv[i], "-fmatrix") == 0)
219
             else if(strcmp(argv[i], "-fmatrix") == 0)
220
             {
220
             {
221
                 i++;
221
                 i++;
222
-                parseTSPLIB_FULL_MATRIX(argv[i], graph);
222
+                parseTSPLIB_FULL_MATRIX(argv[i], &graph);
223
             }
223
             }
224
             else if(strcmp(argv[i], "-feuc2d") == 0)
224
             else if(strcmp(argv[i], "-feuc2d") == 0)
225
             {
225
             {
226
                 i++;
226
                 i++;
227
-                parseTSPLIB_EUC_2D(argv[i], graph);
227
+                parseTSPLIB_EUC_2D(argv[i], &graph);
228
             }
228
             }
229
             else if(strcmp(argv[i], "-h") == 0)
229
             else if(strcmp(argv[i], "-h") == 0)
230
             {
230
             {
597
                 cout << "Podaj nazwe pliku: ";
597
                 cout << "Podaj nazwe pliku: ";
598
                 cin >> filename;
598
                 cin >> filename;
599
 
599
 
600
-                parseTSPLIB_FULL_MATRIX(filename.c_str(), graph);
600
+                parseTSPLIB_FULL_MATRIX(filename.c_str(), &graph);
601
             }
601
             }
602
             break;
602
             break;
603
             case 9:
603
             case 9:
608
                 cout << "Podaj nazwe pliku: ";
608
                 cout << "Podaj nazwe pliku: ";
609
                 cin >> filename;
609
                 cin >> filename;
610
 
610
 
611
-                parseTSPLIB_EUC_2D(filename.c_str(), graph);
611
+                parseTSPLIB_EUC_2D(filename.c_str(), &graph);
612
             }
612
             }
613
             break;
613
             break;
614
             case 0:
614
             case 0:

Loading…
取消
儲存