예제 #1
0
void usaListaPersonas(){
    Lista<Persona> alpha,beta;
    Lista<Persona>* gamma;
    Persona *insertable,buscable(0,"");
    posicion p;
    cout << "Listas de Personas" << endl;
    alpha.fijaNombre("Alpha");
    alpha.fijaEliminaElementos(true);
    beta.fijaNombre("Beta");
    beta.fijaEliminaElementos(true);
    insertable=new Persona(1,"Luis");
    alpha.inserta(insertable);
    insertable=new Persona(2,"Alberto");
    alpha.inserta(insertable);
    alpha.imprimeLista();
    insertable=new Persona(3,"Hugo");
    beta.inserta(insertable);
    insertable=new Persona(4,"Paco");
    beta.inserta(insertable);
    beta.imprimeLista();
    cout << "Concatenando listas..." << endl;
    gamma=alpha.concatenar(beta);
    gamma->imprimeLista();
    cout << "Dime cual busco: " << endl;
    cout << "Clave: ";
    cin >> buscable.clave;
    if ((p=gamma->localiza(&buscable))!=gamma->fin()){
        cout << gamma->recupera(p)->dameCadena() << endl;
    }
    else{
        cout << "No se encontro elemento";
    }
    cout << endl;
    pausar();
    cout << "Cuenta de objetos es: " << cuentaObjetos << endl;
    pausar();
    delete gamma;
}
예제 #2
0
void usaListaComputadoras(){
    Lista<Computadora> alpha,beta;
    Lista<Computadora>* gamma;
    Computadora* insertable,buscable("","");
    posicion p;
    cout << "Listas de Computadoras" << endl;
    alpha.fijaNombre("Alpha");
    alpha.fijaEliminaElementos(true);
    beta.fijaNombre("Beta");
    beta.fijaEliminaElementos(true);
    insertable=new Computadora("Toshiba","Alpha");
    alpha.inserta(insertable);
    insertable=new Computadora("HP","Beta");
    alpha.inserta(insertable);
    alpha.imprimeLista();
    insertable=new Computadora("IBM","Gamma");
    beta.inserta(insertable);
    insertable=new Computadora("Apple","Delta");
    beta.inserta(insertable);
    beta.imprimeLista();
    cout << "Concatenando listas..." << endl;
    gamma=alpha.concatenar(beta);
    gamma->imprimeLista();
    cout << "Dime cual busco: " << endl;
    cout << "Marca: ";
    cin >> buscable.marca;
    cout << "Modelo: ";
    cin >> buscable.modelo;
    if ((p=gamma->localiza(&buscable))!=gamma->fin()){
        cout << gamma->recupera(p)->dameCadena() << endl;
    }
    else{
        cout << "No se encontro elemento";
    }
    cout << endl;
    pausar();
    delete gamma;
}
예제 #3
0
int main()
{
    Lista lis;
    Persona buscable,insertable,recuperado;
    posicion p;

    imprimirCentrado("TDA Lista con clases","#");
    pausar();
    cout << endl;
    inicializaABC(&lis);
    pausar();
    cout << "Imprimiendo lista:" << endl;
    lis.imprimeLista();
    pausar();
    insertable.clave=26;
    insertable.nombre="El insertado 26 al principio";
    cout << "Tratando de insertar..." << endl;
    lis.inserta(&insertable,lis.primero());
    pausar();
    buscable.clave=5;
    buscable.nombre="Uno con clave 5";
    cout << "Buscando elemento..." << endl;
    lis.imprimeElemento(&buscable);
    cout << endl;
    pausar();
    p=lis.localiza(&buscable);
    cout << "Localizado elemento en posicion p=" << p << "..." << endl;
    pausar();
    cout << "Imprimiendo lo que recibi de posicion" << endl;
    lis.imprimeElemento(lis.recupera(p));
    cout << endl;
    pausar();
    recuperado=*lis.recupera(p);
    cout << "El elemento recuperado es: ";
    lis.imprimeElemento(&recuperado);
    cout << endl;
    pausar();
    cout << "Suprimiendo elemento en posicion p=" << p << endl;
    lis.suprime(p);
    lis.imprimeLista();
    cout << "Insertando al principio de la lista..." << endl;
    lis.inserta(&insertable,lis.primero());
    pausar();
    cout << "Imprimiendo lista:" << endl;
    lis.imprimeLista();
    cout << "Elemento recuperado antes de suprimir de la lista: ";
    lis.imprimeElemento(&recuperado);
    cout << endl << "Eliminando ultimo elemento de la lista" << endl;
    lis.suprime(lis.anterior(lis.fin()));
    pausar();
    lis.imprimeLista();
    cout << "Insertando al final de la lista" << endl;
    insertable.clave=27;
    insertable.nombre="El insertado 27 al final";
    lis.inserta(&insertable,lis.fin());
    pausar();
    lis.imprimeLista();
    pausar();
    imprimeListaInversa(&lis);
    return 0;
}