예제 #1
0
void imprimeListaInversa(Lista<TipoElemento>& l){
    posicion p,prim=l.primero();
    cout << "Imprimiendo lista inversa..." << endl;
    if (l.estaVacia()){
        cout << "La lista está vacia";
    }
    else{
        p=l.fin();
        do{
            p=l.anterior(p);
            cout << l.recupera(p)->dameCadena() << endl;
        }while(p!=prim);
    }
}
예제 #2
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;
}