Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/06/2013, 20:52
Avatar de swator
swator
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: PILAS Y COLAS-ayuda por favor

Código C++:
Ver original
  1. void vaciarPila(t_pila *&pila,t_dato &dato)
  2.  
  3.     t_nodo* pEli;               //creo un nodo auxiliar.
  4.     if (!pilaVacia(pila)){          //me fijo si esta vacia.
  5.         valor = pila->cabeza->valor;    //al dato le asigno el valor del que desapilo.
  6.         pEli = pila->cabeza;        //al *aux le asigno  el que saco.
  7.         pila->cabeza = pila ->cabeza ->sig;         //al que queda como tope le asigno el sig.
  8.         delete pEli;            //elimino el *aux.
  9.        
  10.     }else
  11.         cout << "La pila estaba vacia";     //si la pila está vacía.
  12.  
  13. bool colaVacia(t_cola *cola)
  14.  
  15. if (!cola) {                        //pregunto si no hay cola.
  16.         return true;       
  17.     } else {
  18.         return ((cola->frente == NULL)&&(cola->fondo==NULL))//sino pregunto si es NULL.
  19.     }
  20. }
  21. void apilar(t_pila * &pila, const char valor)
  22.  
  23.     t_nodo *pNuevo;             //creo el nuevo nodo.
  24.     if (!pilaLlena(pila)){              //me fijo si está llena.
  25.     pNuevo = new t_nodo;           
  26.     pNuevo ->valor = valor;             //le asigno el dato al nuevo nodo.
  27.  
  28.     pNuevo -> sig = pila -> cabeza;         //apunto el nuevo al que estaba primero.
  29.     pila -> cabeza = pNuevo;            //apunto el que estaba primero al nuevo
  30.     }else
  31.         cout << "No hay espacio para agregar un elemento a la pila";    //si está llena.
  32.  
  33. Void pilavacia(t_pila *&pila,t_dato &dato)
  34.     if (!pila) {                        //pregunto si no hay pila.
  35.         return true;       
  36.     } else {
  37.         return pila->cabeza == NULL;            //sino pregunto si es NULL.
  38.     }
  39. }

void vaciarCola(t_cola *&cola,t_dato &dato) <---- COMPLETAR
void encolar(t_cola *&cola, t_dato &dato) <---- COMPLETAR
en estos 2 anteriores la sistematica sería igual que pilas ?

bool pilaLlena(t_pila *pila) en este modulo no encuentro como fijar un el tope o que está llena. Alguna ayudita??