void Red::Conectar(Compu c1, Compu c2, InterfazN i1, InterfazN i2){ DiccString<InterfazN>* x; x = vecinos.obtener(c1); x->definir(c2,i1); DiccString<InterfazN>* y; y = vecinos.obtener(c2); y->definir(c1,i2); }
int main(int argc, char const *argv[]) { DiccString<string,int> a; string wea="ar"; string qlo="ab"; string fome="a"; a.definir(fome,200); a.definir(wea,12); cout<<(a.obtener(wea))<<endl; cout<<(a.obtener(fome))<<endl; a.obtener(fome) = 13; cout<<(a.obtener(fome))<<endl; cout<<(a.definido(wea))<<endl; a.borrar(wea); cout<<(a.definido(wea))<<endl; //cout<<*(a.estr->caracteres[97]->caracteres[114]->significado)<<endl; //string wea="abcda"; //int x=wea[0]; /*cout<<(a.obtener(wea))<<endl; cout<<a.definido(wea)<<endl; //a.definir(qlo,950); cout<<a.definido(qlo)<<endl; //a.borrar(wea); cout<<a.definido(fome)<<endl; cout<<(a.obtener(fome))<<endl; cout<<(a.obtener(wea))<<endl;*/ //cout<<(a.obtener(qlo))<<endl; //cout<<(a.obtener(wea))<<endl; //cout<<*(a.estr->caracteres[97]->significado)<<endl; //cout<<(a.obtener(wea)); //cout<<"este cout groso da: "<<*(a.estr->caracteres[97]->significado)<<endl; //cout<<a.definido("b")<<endl; return 0; }
void agregar_diccionario() { DiccString<Nat> dic; dic.Definir("a", 4); DiccString<Nat> dic2(dic); dic.Definir("coso", 6); ASSERT(dic.Definido("a")); ASSERT_EQ(dic.Significado("a"), 4); ASSERT(dic.Definido("coso")); ASSERT_EQ(dic.Significado("coso"), 6); ASSERT(dic2.Definido("a")); ASSERT_EQ(dic2.Significado("a"), 4); ASSERT(!dic2.Definido("coso")); DiccString<DiccString<Nat> > ddic; ddic.Definir("Test", dic); ASSERT(ddic.Definido("Test")); }
void Red::ActualizarCaminosMasCortos(const Compu& pc1, const Compu& pc2) { Conj<Lista<Compu> >& aux = CaminosQueTerminanConPcx(this->caminos, pc2); Conj<Lista<Compu> >& caminosRes = CaminosQueEmpiezanConPcx(aux, pc1); Conj<Lista<Compu> > caminosAAgregar; Conj<Lista<Compu> >::Iterador itConjCamino = caminosRes.CrearIt(); if(itConjCamino.HaySiguiente()) { Nat cantidadDeComputadorasEnCaminoMinimo = itConjCamino.Siguiente().Longitud(); while(itConjCamino.HaySiguiente()) { if(cantidadDeComputadorasEnCaminoMinimo > itConjCamino.Siguiente().Longitud()) { cantidadDeComputadorasEnCaminoMinimo = itConjCamino.Siguiente().Longitud(); } itConjCamino.Avanzar(); } while(itConjCamino.HayAnterior()) { if(cantidadDeComputadorasEnCaminoMinimo == itConjCamino.Anterior().Longitud()) { caminosAAgregar.AgregarRapido(itConjCamino.Anterior()); } itConjCamino.Retroceder(); } if(this->caminosMasCortos.definido(pc1.Ip())){ this->caminosMasCortos.obtener(pc1.Ip())->definir(pc2.Ip(), caminosAAgregar); } else{ DiccString<Conj<Lista<Compu> > > hasta; hasta.definir( pc2.Ip(), caminosAAgregar ); this->caminosMasCortos.definir( pc1.Ip(), hasta ); } } delete &caminosRes; delete &aux; }
int main(){ DiccString<Nat> mapping = DiccString<Nat>(); string A; string B; int n; cout << "Dame A: "; cin >> A; cout << "\nDame B: "; cin >> B; cout << "\nDame la cantidad de vuelos: "; cin >> n; cout << "\n" << endl; mapping.Definir(A,0); mapping.Definir(B,1); //PREGUNTAR SI HAY PROBLEMA EN RESERVAR MEMORIA LUEGO DE ASIGNAR 2 POSICIONES vector< vector<Vuelo> > salidas(2,vector<Vuelo>()); salidas.reserve(2*n + 2); for (int j = 0; j < n; j++){ string o; string d; int inicio; int f; cout << "Origen de vuelo " << j << ": "; cin >> o; cout << "\nDestino de vuelo " << j << ": "; cin >> d; cout << "\nInicio de vuelo " << j << ": "; cin >> inicio; cout << "\nFin de vuelo " << j << ": "; cin >> f; cout << "\n" << endl; if(!mapping.Definido(o)){ salidas.push_back(vector<Vuelo>()); mapping.Definir(o,mapping.CantClaves()); } if(!mapping.Definido(d)){ salidas.push_back(vector<Vuelo>()); mapping.Definir(d,mapping.CantClaves()); } int intDeCiudadOrigen = mapping.Significado(o); int intDeCiudadDestino = mapping.Significado(d); Vuelo nuevoVueloConstruido = Vuelo(intDeCiudadOrigen, intDeCiudadDestino, inicio, f, j); salidas[intDeCiudadOrigen].push_back(nuevoVueloConstruido); } for(int j = 0; j < salidas.size(); j++){ //SORTING EN LAS SALIDAS vector<Vuelo>& flightToSort = salidas[j]; stable_sort(flightToSort.begin(), flightToSort.end(),orden); } vector< Itinerario > best(mapping.CantClaves(),Itinerario()); vector<bool> disponibles(mapping.CantClaves(), true); Itinerario result = bestWay(0,0,salidas,best,disponibles); printTodo(best); if(!result.llego){ cout << "no" << endl; }else{ cout << best[0].tarda << " "; cout << best[0].cantViajes << " "; Vuelo aux = best[0].siguienteVuelo; cout << aux.ID << " "; // cout << "En " << 0 << " tomar el que va a " << aux.destino; while(aux.destino != 1){ aux = best[aux.destino].siguienteVuelo; cout << aux.ID << " "; // cout << "En " << aux.origen << " tomar el que va a " << aux.destino << "\n\n"; } cout << endl; } return 0; }
//para compilar esto suelto, cambiar testearDic por main y compilarlo con g++ -g -o DiccString DiccString.cpp int main() { DiccString<int> dicc; //definido a? std::cout << "Def?(a): " << dicc.Def("a"); std::cout << "\n"; std::cout << "\n"; //defino a dicc.Definir("a", 8); std::cout<< "defino a, 8"; std::cout << "\n"; std::cout << "\n"; //definido a? std::cout << "Def?(a): " << dicc.Def("a"); std::cout << "\n"; std::cout << "\n"; //significado a std::cout << "significado a: " << dicc.Obtener("a"); std::cout << "\n"; std::cout << "\n"; //borro a dicc.Borrar("a"); std::cout<< "borro a"; std::cout << "\n"; std::cout << "\n"; //definido a? std::cout << "Def?(a): " << dicc.Def("a"); std::cout << "\n"; std::cout << "\n"; //defino a dicc.Definir("a", 8); std::cout<< "defino a, 8"; std::cout << "\n"; std::cout << "\n"; //defino ab dicc.Definir("ab", 10); std::cout<< "defino ab, 10"; std::cout << "\n"; std::cout << "\n"; //definido a? std::cout << "Def?(a): " << dicc.Def("a"); std::cout << "\n"; std::cout << "\n"; //definido ab? std::cout << "Def?(ab): " << dicc.Def("ab"); std::cout << "\n"; std::cout << "\n"; //claves std::cout << "claves: " << dicc.Claves(); std::cout << "\n"; std::cout << "\n"; //significados std::cout << "significados: " << dicc.Significados(); std::cout << "\n"; std::cout << "\n"; //obtener a std::cout << "obtener a: " << dicc.Obtener("a"); std::cout << "\n"; std::cout << "\n"; //obtener ab std::cout << "obtener ab: " << dicc.Obtener("ab"); std::cout << "\n"; std::cout << "\n"; //borro a dicc.Borrar("a"); std::cout<< "borro a"; std::cout << "\n"; std::cout << "\n"; //definido a? std::cout << "Def?(a): " << dicc.Def("a"); std::cout << "\n"; std::cout << "\n"; //definido ab? std::cout << "Def?(ab): " << dicc.Def("ab"); std::cout << "\n"; std::cout << "\n"; //obtener ab std::cout << "obtener ab: " << dicc.Obtener("ab"); std::cout << "\n"; std::cout << "\n"; //claves std::cout << "claves: " << dicc.Claves(); std::cout << "\n"; std::cout << "\n"; //significados std::cout << "significados: " << dicc.Significados(); std::cout << "\n"; std::cout << "\n"; return 0; }
bool Red::Conectadas(Compu c1, Compu c2){ DiccString<InterfazN>* x = vecinos.obtener(c1); bool res = x->definido(c2); return res; }