PtrNodoPiso siguiente(ListaPiso &listaP, PtrNodoPiso ptrNodoP){
/* verifica si la lista está vacia o si ptrNodo es el último */
  if ((! listaVacia(listaP)) && (ptrNodoP != finP()))
    return ptrNodoP->sgteP;
  else
    return finP();
}
PtrNodoPiso adicionarAntes(ListaPiso &listaP, PilUb pilUb, PtrNodoPiso ptrNodoP){
  PtrNodoPiso ptrNuevoNodo = finP();

  if (! listaVacia(listaP)) {
    if (ptrNodoP != primero(listaP))
      ptrNuevoNodo = adicionarDespues(listaP,pilUb,anterior(listaP,ptrNodoP));
    else
      ptrNuevoNodo = adicionarPrincipio(listaP,pilUb);
   }
   return ptrNuevoNodo;
}
Example #3
0
void listaTrenes::insertar(Tren *nuevo){
    if(listaVacia()){
        primero = nuevo;
        return;
    }
    else{
        Tren *tmp = primero;
        while(tmp->siguiente != NULL){
            tmp = tmp->siguiente;
        }
        tmp->siguiente = nuevo;
    }
}
Example #4
0
Tren *listaTrenes::buscar(QString placa){
    if(listaVacia()){
        return NULL;
    }
    else{
        Tren *tmp = primero;
        while(tmp->siguiente != NULL){
            if(tmp->placa == placa){
                return tmp;
            }
            else{
                tmp = tmp->siguiente;
            }
        }
        return NULL;
    }
}
Example #5
0
int main(){

    t_lista pl;
    t_info pd;

    puts("CREANDO LISTA... \n");
    crear_lista(&pl);

    pd.num = 4;
    printf("INSERTANDO %d ... \n",pd.num);
    //insertarEnOrden(&pl, &pd, comparar);
    insertarAdelante(&pl, &pd);
    //insertarAlFinal(&pl, &pd);

    pd.num = 1;
    printf("INSERTANDO %d ... \n",pd.num);
    //insertarEnOrden(&pl, &pd, comparar);
    //insertarAdelante(&pl, &pd);
    insertarAlFinal(&pl, &pd);

    pd.num = 2;
    printf("INSERTANDO %d ... \n",pd.num);
    //insertarEnOrden(&pl, &pd, comparar);
    insertarAdelante(&pl, &pd);
    //insertarAlFinal(&pl, &pd);

    printf("\nLISTA VACIA?: %s\n", listaVacia(&pl)==1?"SI":"NO");

    puts("LISTANDO... \n");
    listar(&pl);

    ordenar(&pl, comparar);

    puts("LISTANDO... \n");
    listar(&pl);

    puts("\nELIMINANDO EL 4... \n");
    pd.num = 4;
    eliminarDeListaNoOrdenada(&pl, &pd, comparar);

    puts("LISTANDO... \n");
    listar(&pl);

    return 0;
}
void eliminarNodo(ListaPiso &listaP, PtrNodoPiso ptrNodoP){
  PtrNodoPiso ptrPrevio;

  /* verifica que la lista no esté vacia y que nodo no sea fin*/
  if ((! listaVacia(listaP)) && (ptrNodoP != finP())) {

    if (ptrNodoP == primero(listaP))
      listaP.primeroPiso = siguiente(listaP,primero(listaP));

    else {
      ptrPrevio = anterior( listaP , ptrNodoP );
      ptrPrevio->sgteP = ptrNodoP->sgteP;
    }
    // Si el dato es un TDA, acá habría que llamar al destructor.
    destruir(ptrNodoP->pilUb);
    delete ptrNodoP;
  }
}
//*******************
void eliminarNodo(ListaArtDeposito &listaArtDep,PtrNodoListaDeposito ptrNodoListaDep){
PtrNodoListaDeposito ptrPrevio;

  /* verifica que la lista no esté vacia y que nodo no sea fin*/
  if ((! listaVacia(listaArtDep)) && (ptrNodoListaDep != finAD())) {

    if (ptrNodoListaDep == primero(listaArtDep))
      listaArtDep.primerArtDeposito = siguiente(listaArtDep,primero(listaArtDep));

    else {
      ptrPrevio = anterior( listaArtDep , ptrNodoListaDep );
      ptrPrevio->sgteAD= ptrNodoListaDep->sgteAD;
    }
    // Si el dato es un TDA, acá habría que llamar al destructor.

    delete ptrNodoListaDep;
  }
}
//********************
PtrNodoListaDeposito adicionarDespues(ListaArtDeposito &listaArtDep,ArtDep datoArtDep, PtrNodoListaDeposito ptrNodoListaDep){
PtrNodoListaDeposito ptrNuevoNodo = finAD();

  /* si la lista está vacia se adiciona la principio */
  if (listaVacia(listaArtDep))
    ptrNuevoNodo = adicionarPrincipio(listaArtDep,datoArtDep);

  else {
    if (ptrNodoListaDep != finAD()) {

      /* crea el nodo y lo intercala en la lista */
      ptrNuevoNodo = crearNodoLista(datoArtDep);

      ptrNuevoNodo->sgteAD = ptrNodoListaDep->sgteAD;
      ptrNodoListaDep->sgteAD = ptrNuevoNodo;
    }
  }
  return ptrNuevoNodo;
}
PtrNodoPiso adicionarDespues(ListaPiso &listaP, PilUb pilUb, PtrNodoPiso ptrNodoP){
  PtrNodoPiso ptrNuevoNodo = finP();

  /* si la lista está vacia se adiciona la principio */
  if (listaVacia(listaP))
    ptrNuevoNodo = adicionarPrincipio(listaP,pilUb);

  else {
    if (ptrNodoP != finP()) {

      /* crea el nodo y lo intercala en la lista */
      ptrNuevoNodo = crearNodoLista(pilUb);

      ptrNuevoNodo->sgteP = ptrNodoP->sgteP;
      ptrNodoP->sgteP = ptrNuevoNodo;
    }
  }
  return ptrNuevoNodo;
}
void obtenerDato(ListaPiso &listaP, PilUb &pilUb, PtrNodoPiso ptrNodoP){
 if ((! listaVacia(listaP)) && (ptrNodoP != finP()))
    pilUb = ptrNodoP->pilUb;
}
//********************
void eliminarNodoPrimero(ListaArtDeposito &listaArtDep){
if (! listaVacia(listaArtDep))
    eliminarNodo(listaArtDep,primero(listaArtDep));
}
//********************
void eliminarNodoUltimo(ListaArtDeposito &listaArtDep){
if (! listaVacia(listaArtDep))
    eliminarNodo(listaArtDep,ultimo(listaArtDep));
}
void eliminarLista(ListaPiso &listaP){
while (! listaVacia(listaP))
    eliminarNodo(listaP,primero(listaP));
}
void eliminarNodoUltimo(ListaPiso &listaP){
  if (! listaVacia(listaP))
    eliminarNodo(listaP,ultimo(listaP));
}
void eliminarNodoPrimero(ListaPiso &listaP){
  if (! listaVacia(listaP))
    eliminarNodo(listaP,primero(listaP));
}
Example #16
0
int main(int argc, char** argv) {

   char input[INPUTSIZE];
   
   while(fgets(input , INPUTSIZE , stdin) != NULL)
    {
        switch(input[0]){
            case 'p':
                primerAlumno();
                break;
            case 'u':
                ultimoAlumno();
                break;
            case 'i':
            {
                char * id, *nom, *tel;
                strtok(input,",");
                id = strtok(NULL, ",\n\t");
                nom = strtok(NULL, ",\n\t");
                tel = strtok(NULL, ",\n\t");
                insertarAlumno(atoi(id),nom,atoi(tel));
                break;
            }
            case 'b':
            {
                char* id;
                strtok(input,",\n\t");
                id = strtok(NULL, ",\n\t");
                if (input[1] == 'u'){
                    //buscar
                    buscarAlumno(atoi(id));
                    break;
                }else{
                    //borrar
                    borrarAlumno(atoi(id));
                    break;
                }
            }
            case 'c':
                crearLista();
                break;
            case 'l':
            {
                if(input[5] == 'r'){
                     listarAlumnos();
                    break;
                }else{
                    listaVacia();
                    break;
                }
            }
               
            case 'm':
            {
                char * id, *tel;
                strtok(input,",\n\t");
                id = strtok(NULL, ",\n\t");
                tel = strtok(NULL, ",\n\t");
                modificarTelefono(atoi(id),atoi(tel));
                break;
            }
        }
    }
   
   while( alumnos.primero != NULL ){
       struct nodo *ptr;
       ptr = alumnos.primero;
       alumnos.primero = ptr->sig;
       free(ptr);
   }
    
     
   /* 
    crearLista();
    insertarAlumno(172799,"Arnau",685412152);
    insertarAlumno(175214,"PEPA",52341451);
    insertarAlumno(174521,"JOAQUIN",54548215);
    insertarAlumno(184521,"f1",9685485);
    insertarAlumno(114521,"g3",15641655);
    listarAlumnos();
    ultimoAlumno();
    borrarAlumno(184521);
    ultimoAlumno();
    primerAlumno();
    borrarAlumno(172799);
    buscarAlumno(174521);
    buscarAlumno(172799);
    primerAlumno();
    listarAlumnos();*/
    //HACER FREEEEE DE LA COLA ENTERA ********************************************************************************
#if DEBBUGPRIMERO
    primerAlumno();
    borrarAlumno(114521);
    primerAlumno();
#endif
#if DEBBUGBORRAR
    borrarAlumno(3652); //comprobamos que si no existe el nia no borra nada
    borrarAlumno(175214);
    listarAlumnos();
#endif
    
#if DEBBUGULTIMO
    ultimoAlumno();
    borrarAlumno(184521);
    ultimoAlumno();
#endif
    
#if DEBBUGTELEFONO
    modificarTelefono(174521);
    listarAlumnos();
#endif
    
    return (EXIT_SUCCESS);
}
//********************
void eliminarLista(ListaArtDeposito &listaArtDep){
 while (! listaVacia(listaArtDep))
    eliminarNodo(listaArtDep,primero(listaArtDep));
}
//********************
void obtenerDato(ListaArtDeposito &listaArtDep,ArtDep &datoArtDep, PtrNodoListaDeposito ptrNodoListaDep){
if ((! listaVacia(listaArtDep)) && (ptrNodoListaDep != finAD()))
    datoArtDep = ptrNodoListaDep->datoArtDep;
}
//********************
void colocarDato(ListaArtDeposito &listaArtDep,ArtDep &datoArtDep, PtrNodoListaDeposito ptrNodoListaDep){
if ( (! listaVacia(listaArtDep)) && (ptrNodoListaDep != finAD()))
    ptrNodoListaDep->datoArtDep = datoArtDep;
}
//********************
PtrNodoListaDeposito siguiente(ListaArtDeposito &listaArtDep,PtrNodoListaDeposito ptrNodoListaDep){
if ((! listaVacia(listaArtDep)) && (ptrNodoListaDep != finAD()))
    return ptrNodoListaDep->sgteAD;
  else
    return finAD();
}