martes, 12 de julio de 2011

Pilas

#include <stdio.h>
#include <stdlib.h>
 
 struct tpila           {
  int clave;
  struct tpila *sig;
};
   /* prototipos e implementacion */
 
void crear(struct tpila **pila);
int vacia(struct tpila *pila);
void apilar(struct tpila *pila, int elem);void desapilar(struct tpila *pila, int *elem);
 
 
void crear(struct tpila **pila)
{  *pila = (struct tpila *) malloc(sizeof(struct tpila));
  (*pila)->sig = NULL;
}
 
int vacia(struct tpila *pila){
  return (pila->sig == NULL);
}
 
void apilar(struct tpila *pila, int elem){
  struct tpila *nuevo;
 
  nuevo = (struct tpila *) malloc(sizeof(struct tpila));
  nuevo->clave = elem;  nuevo->sig = pila->sig;
  pila->sig = nuevo;
}
 
void desapilar(struct tpila *pila, int *elem){
  struct tpila *aux;
 
  aux = pila->sig;
  *elem = aux->clave;  pila->sig = aux->sig;
  free(aux);
}
 
   /* programa de prueba */
int main(void)
{
  struct tpila *pila;
  int elem; 
  crear(&pila);
  if (vacia(pila)) printf("nPila vacia!");
  apilar(pila, 1);
  desapilar(pila, &elem); 
  return 0;
}




aqui les dejo una interaccion de una pila como manipularla y como se introducen elementos

1 comentario:

  1. La idea era hacerlo tú, no copiarlo de http://www.algoritmia.net/articles.php?id=14 - te pongo 3 puntos por la tarea por el intento, pero no te voy a poder poner más puntos si no te pones a programar en vez de copiar cosas.

    ResponderEliminar