Exemple #1
0
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;
 }
Exemple #3
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"));
}
Exemple #4
0
	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;
	}
Exemple #5
0
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;
}
Exemple #6
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;

}
Exemple #7
0
bool Red::Conectadas(Compu c1, Compu c2){
	DiccString<InterfazN>* x = vecinos.obtener(c1);
	bool res = x->definido(c2);
	return res;
}