Pilas

Páginas: 3 (549 palabras) Publicado: 6 de noviembre de 2012
1. Creamos un nodo para el valor que colocaremos en la pila.
2. Hacemos que nodo->siguiente apunte a Pila.
3. Hacemos que Pila apunte a nodo.
4. Hacemos que nodo apunte al primerelemento de la pila, es decir a Pila.
5. Asignamos a Pila la dirección del segundo nodo de la pila: Pila->siguiente.
6. Guardamos el contenido del nodo para devolverlo como retorno, recuerdaque la operación pop equivale a leer y borrar.
7. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.

#include <stdlib.h>
#include <stdio.h>

typedef struct_nodo \{
int valor;
struct _nodo *siguiente;
} tipoNodo;

typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;

/* Funciones con pilas: */
void Push(Pila *l, int v);
int Pop(Pila *l);int main() \{
Pila pila = NULL;

Push(&pila, 20);
Push(&pila, 10);
printf("%d, ", Pop(&pila));
Push(&pila, 40);
Push(&pila, 30);

printf("%d, ",Pop(&pila));
printf("%d, ", Pop(&pila));
Push(&pila, 90);
printf("%d, ", Pop(&pila));
printf("%d\n", Pop(&pila));

getchar();
return 0;
}

voidPush(Pila *pila, int v) \{
pNodo nuevo;

/* Crear un nodo nuevo */
nuevo = (pNodo)malloc(sizeof(tipoNodo));
nuevo->valor = v;

/* Añadimos la pila a continuación del nuevo nodo*/
nuevo->siguiente = *pila;
/* Ahora, el comienzo de nuestra pila es en nuevo nodo */
*pila = nuevo;
}

int Pop(Pila *pila) \{
pNodo nodo; /* variable auxiliar para manipularnodo */
int v; /* variable auxiliar para retorno */

/* Nodo apunta al primer elemento de la pila */
nodo = *pila;
if(!nodo) return 0; /* Si no hay nodos en la pila retornamos0 */
/* Asignamos a pila toda la pila menos el primer elemento */
*pila = nodo->siguiente;
/* Guardamos el valor de retorno */
v = nodo->valor;
/* Borrar el nodo */...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Las pilas
  • pila
  • pilas
  • pilas
  • las pilas
  • Pilas
  • Pilo
  • Pilar

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS