void Aplicacion6::mostrarDetallesCiudad(Dispersion<StructPost> &disp, string nombreCiudad) { unsigned long int clave; clave = djb2(nombreCiudad); StructPost* c = disp.buscar(clave); if(c == 0){ cout << "Ciudad " << nombreCiudad<<" no encontrada." << endl; return; } EEDD::Iterador<CodigoPost*>* itLineas; itLineas = c->getListadoCodigos().iteradorIni(); cout << "Zipcode\tZipCodeType\tCity\t\tState\tLocationType\tLat\tLong\tLocation\tDecommisioned\tTaxReturnsFiled\tEstimatedPopulation\tTotalWages" << endl; while(itLineas->haySiguiente()){ cout << itLineas->dato()->getZipCode() << "\t"; cout << itLineas->dato()->getZipCodeType() << "\t"; cout << itLineas->dato()->getCity() << "\t\t"; cout << itLineas->dato()->getState() << "\t"; cout << itLineas->dato()->getLocationType() << "\t"; cout << itLineas->dato()->getLat() << "\t"; cout << itLineas->dato()->getLon() << "\t"; cout << itLineas->dato()->getLocation() << "\t"; cout << itLineas->dato()->getDecommisioned() << "\t"; cout << itLineas->dato()->getTaxReturnsFiled() << "\t"; cout << itLineas->dato()->getEstimatedPopulation() << "\t"; cout << itLineas->dato()->getTotalWages() << endl; itLineas->siguiente(); } }
void leerficheroSP(Dispersion<StructPost>& disp, const string& nfichero, const bool& cabecera) { string aux_str; ifstream f; f.open(nfichero.c_str()); if (f.good()) { if (cabecera && !f.eof()) { getline(f,aux_str); } while (getline(f,aux_str)) { CodigoPost cp; aux_str=cp.fromCSV(aux_str); StructPost* existente=disp.buscar(hash_djb2(aux_str.c_str())); if (existente) { existente->codigos.insertarFin(cp); } else { StructPost sp={aux_str}; sp.codigos.insertarFin(cp); disp.insertar(hash_djb2(aux_str.c_str()),sp); } } } f.close(); }
void Aplicacion6::cargarTablaDispersion(Dispersion<StructPost> &disp) { cout << "Iniciando carga de la tabla de Dispersión." << endl; long int tIni = time(0); CargadorDatos cd; CodigoPost* d; unsigned long clave = 0; d=cd.siguienteDetalle(); while(d != 0){ clave = djb2(d->getCity()); //si la ciudad no está aún en el árbol la creo. if (disp.buscar(clave) == 0){ StructPost c; c.setNombreCiudad(d->getCity()); disp.insertar(clave,c); } disp.buscar(clave)->getListadoCodigos().insertarFin(d); d=cd.siguienteDetalle(); } long int tFin = time(0); cout << "Número máximo de colisiones: " << disp.maxI << endl; cout << "Tabla de dispersión cargada(" << (tFin-tIni) << " segs)."<< endl; }