Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
void push( int*, int*, int );
int pop( int*, int* );
int altura( int* );
int main( void )
{
int *pila, *tmp, elementos = 0, i;
pila = calloc( MAX, sizeof( int ) );
tmp = pila;
printf( "altura:%d\n", altura( &elementos ) );
for ( i = 0; i < MAX; ++i )
{
printf( "push:%d\n", i + 1 );
push( &(*pila), &elementos, i + 1 );
pila++;
}
printf( "altura:%d\n", altura( &elementos ) );
pila--;
for ( i = 0; i < MAX; ++i )
{
printf( "pop:%d\n", pop( &(*pila), &elementos ) );
pila--;
}
printf( "altura:%d\n", altura( &elementos ) );
free( tmp );
return 0;
}
void push( int *pila, int *elementos, int num )
{
*pila = num;
++(*elementos);
}
int pop( int *pila, int *elementos )
{
int num;
num = *pila;
*pila = 0;
--(*elementos);
return num;
}
int altura( int *elementos )
{
return (*elementos);
}
Editado
Littlehorse: Evita el spam a sitios externos a elhacker.net que no sean estrictamente relevantes. Tienes el espacio suficiente para transcribir el contenido de tu blog al post. Gracias.