CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit a6da388a62d16f6873c65bac7d8810063aa672b0
parent 0963a7f0d70a1205b3e196b12583173fa1eebbf0
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Thu, 20 Jun 2024 02:11:54 -0300

create an instance of `Barrio` if not encountered on `barrios` list

Diffstat:
Mmain.cpp | 40+++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/main.cpp b/main.cpp
@@ -79,8 +79,10 @@ int main (void) {
     std::ifstream inputFile;
     std::string token, line;
     std::vector<std::string> tokens;
+    Barrio *barrio;
+    List<Barrio*> *barrios;
 
-    int comuna, alturaPlano;
+    int comuna, alturaPlano, fields;
     double coordX, coordY;
     std::string barrioNombre, calle, direccion;
 
@@ -94,6 +96,7 @@ int main (void) {
 
     comuna = alturaPlano = 0;
     coordX = coordY = 0.0f;
+    barrios = new List<Barrio*>;
 
     std::getline(inputFile, line); // saltea la primer linea
 
@@ -158,16 +161,35 @@ int main (void) {
             }
         }
 
-        std::cout << "{\n    \"barrio\": " << barrioName << ",\n"
-            << "    \"calle\": \"" << calle << "\",\n"
-            << "    \"comuna\": " << comuna << ",\n"
-            << "    \"direccion\": \"" << direccion << "\",\n"
-            << "    \"coordenada x\": " << coordX << ",\n"
-            << "    \"coordenada y\": " << coordY << ",\n"
-            << "    \"alturaPlano\": " << alturaPlano << "\n},\n";
-        lineStream.clear();
+        barrio = getBarrioPorNombre(barrioNombre, barrios);
+        if(barrio == NULL) {
+            std::cout << "Creando nuevo barrio `" << barrioNombre << "`\n";
+            barrio = new Barrio(barrioNombre, comuna);
+            barrios->insert(barrio);
+        } else {
+            // barrio ya existe
+            // barrio->addParada(...);
+        }
+
+        // std::cout << "{\n    \"barrio\": " << barrioNombre << ",\n"
+        //     << "    \"calle\": \"" << calle << "\",\n"
+        //     << "    \"comuna\": " << comuna << ",\n"
+        //     << "    \"direccion\": \"" << direccion << "\",\n"
+        //     << "    \"coordenada x\": " << coordX << ",\n"
+        //     << "    \"coordenada y\": " << coordY << ",\n"
+        //     << "    \"alturaPlano\": " << alturaPlano << "\n},\n";
     }
 
     inputFile.close();
+
+    std::cout << "Total barrios creados: " << barrios->getSize() << std::endl;
+
+    barrios->startCursor();
+    while(barrios->forwardCursor()) {
+        std::cout << "Eliminando barrio `" << barrios->getCursorData()->getNombre() << "`\n";
+        delete barrios->getCursorData();
+    }
+
+    delete barrios;
     return 0;
 }