Ejemplo pila con arreglo (Por nicolas_cof)

Iniciado por @synthesize, 28 Junio 2010, 04:51 AM

0 Miembros y 1 Visitante están viendo este tema.

@synthesize


#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.

Og.

Si quieres hacer un ejemplode esto, seria mejor que hicieses una clase. Asi el codigo se ve mas limpio y encierto modo mas portable.
|-

nicolas_cof

Cita de: Og. en 29 Junio 2010, 06:14 AM
Si quieres hacer un ejemplode esto, seria mejor que hicieses una clase. Asi el codigo se ve mas limpio y encierto modo mas portable.

Og., tienes razon, pero basicamente no se perseguia como objetivo eso. Solamente fue un codigo de ejemplo para Daemon Freedom, el cual ya habia creado un post sobre pilas con arreglos...

http://foro.elhacker.net/programacion_cc/pilas_ejemplo-t297895.0.html

Pd: lo ideal hubiera sido que estuviera todo junto.

Salu10.

cbug

No entiendo la finalidad de copiar en un nuevo thread, un code que hiciste tú en otro post.

nicolas_cof

Cita de: cbug en 29 Junio 2010, 13:21 PM
No entiendo la finalidad de copiar en un nuevo thread, un code que hiciste tú en otro post.

cbug, me lo dices a mi o a Daemon Freedom?

Si es para mi, como dije anteriormente, hubiera estado bueno que este junto al otro post que trata sobre lo mismo, pero bueno, en fin no fue decision mia!

Salu10.

Littlehorse

La verdad que yo tampoco entiendo la finalidad del post. El código es un código ya puesto en otro post, y el autor que lo postea lo hace poniendo un link a su blog y para colmo sin ser quien realizo el código.

Por otro lado el código, por lo que puedo ver en otro hilo, se hizo en primera instancia para dar un ejemplo sobre otro código, no para que se publique en forma aparte.

Si tuviese el botón para unir/dividir mensajes, lo movería al hilo que corresponde, pero no se puede.

Como el post no tiene razón de ser, lo cierro. Igualmente quiero aclarar que el spam con blogs personales no esta permitido, y menos cuando la entrada respectiva no tiene mas de 10 lineas de texto. Por lo tanto la próxima vez que ocurra lo mismo, borro sin previo aviso.

Saludos!

Cerrado

An expert is a man who has made all the mistakes which can be made, in a very narrow field.