|
155
|
Programación / Programación C/C++ / Re: Pilas (Ejemplo)
|
en: 27 Junio 2010, 08:25 am
|
http://es.wikipedia.org/wiki/Pila_%28inform%C3%A1tica%29/* Implementacion en C de Pila (Stack) by nicolas_cof */
#include <stdio.h> #include <stdlib.h>
typedef struct _nodo { int num; struct _nodo *siguiente; } nodo; typedef nodo *pila; typedef nodo *pNodo;
void push( pila*, int*, int ); int pop( pila*, int* ); int altura( int* );
int main( void ) { int elementos = 0; pila p = NULL;
printf( "altura:%d\n", altura( &elementos ) );
printf( "push:2\n" ); push( &p, &elementos, 2 ); printf( "push:3\n" ); push( &p, &elementos, 3 );
printf( "altura:%d\n", altura( &elementos ) );
printf( "pop:%d\n", pop( &p, &elementos) ); printf( "pop:%d\n", pop( &p, &elementos) );
printf( "altura:%d\n", altura( &elementos ) );
return 0; }
void push( pila *p, int *elementos, int num ) { pNodo nuevo;
/* creo un nodo nuevo */ nuevo = malloc( sizeof( nodo ) ); /* asigno el valor al contenido del nodo */ nuevo->num = num; /* le asigno la pila al siguiente del nuevo nodo */ nuevo->siguiente = *p; /* el comiendo de nuestra pila es el nodo nuevo */ *p = nuevo; /* aumento en uno la cantidad de elementos de la pila */ ++(*elementos); }
int pop( pila *p, int *elementos ) { pNodo nodo; /* nodo auxiliar */ int num;
/* si no hay ningun elemento en la pila devuelve 0 */ if ( *elementos <= 0 ) return 0; /* nodo apunta al primer elemento de la pila */ nodo = *p; /* asignamos a p toda la pila menos el primer elemento */ *p = nodo->siguiente; /* guardamos el valor contenido en el nodo */ num = nodo->num; /* liberamos la memoria asignada al nodo en el push */ free( nodo ); /* disminuyo en uno la cantidad de elementos de la pila */ --(*elementos);
return num; }
int altura( int *elementos ) { /* devuelve la cantidad de elementos de la pila */ return (*elementos); } Salida... altura:0 push:2 push:3 altura:2 pop:3 pop:2 altura:0 Salu10.
|
|
|
157
|
Programación / Programación C/C++ / Re: Librería
|
en: 27 Junio 2010, 04:35 am
|
¿Qué pasó con el proyecto?
Yo por mi parte ultimamente no tengo mucho tiempo, pero apenas se me pase un poco esta etapa de finales , tratare de aportar algunas ideas... Igual aca el director de la orquesta es Daemon Freedom... Salu10.
|
|
|
159
|
Programación / Programación C/C++ / Re: warning en C++
|
en: 27 Junio 2010, 03:29 am
|
class calle { public: int nro,sentido; public: calle(int a,int b) { nro = a; sentido = b; } }; Una pregunta, no seria redundante poner 2 veces public? O te confundiste y quisiste poner private? Salu10.
|
|
|
160
|
Programación / Programación C/C++ / Re: warning en C++
|
en: 27 Junio 2010, 03:20 am
|
Fijate de ponerlo asi... class calle { private: int nro, sentido; public: calle( int a, int b ){ this->nro = a; this->sentido = b; } }; Otra forma class calle { private: int nro, sentido; public: calle( int a, int b ) : nro( a ), sentido( b ) { } }; Salu10.
|
|
|
|
|
|
|