• Viernes 8 de Noviembre de 2024, 19:16

Autor Tema:  Funcion Pilas C  (Leído 1160 veces)

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Funcion Pilas C
« en: Domingo 22 de Julio de 2007, 20:03 »
0
Hola, tengo que hacer un programa en c que controle una pila, con las funciones:
-Crearnodo
-Mostrar la pila
-Push
-Pop

He estado intentando hacerla de muchas formas, pero es que push no se como hacerlo, los elementos se insertan los ultimos verdad?como voy hasta el final? y tengo que tener en cuenta algun tope de la pila o algo asi?gracias, un saludo. :smartass:
De todas formas tengo el codigo fuente por si alguien lo quiere!
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Funcion Pilas C
« Respuesta #1 en: Domingo 22 de Julio de 2007, 20:54 »
0
No es tan complicado... muestra el codigo y lee el FAQ
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

mnv_19

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Funcion Pilas C
« Respuesta #2 en: Lunes 23 de Julio de 2007, 10:32 »
0
Código: Text
  1. void push(struct fpila **pila,int numero){ //funcion de insertar
  2.      
  3.      struct fpila *nuevo;
  4.      struct fpila *aux;
  5.      crearnodo(&nuevo,numero); //creamos el nodo
  6.      if(vacia(pila)) //si la pila esta vacia,la pila es nuevo
  7.        *pila=nuevo;
  8.      else{
  9.        aux=*pila; //si la pila no esta vacia, igualamos aux a pila
  10.        while(aux!=NULL){ //mientras sea distinto de nulo, pasamos de nodo
  11.          aux=aux->sig; //se nos colocara al final,ya que las pilas insertan el ultimo elemento
  12.        }//while
  13.        aux->sig=nuevo; //colocamos el elemento el ultimo
  14.      }//else    
  15. }//push
  16.  
  17.  

la pila necesita almacena numeros enteros.

estaria bien asi???
GRacias
"Los verdaderos programadores no hablan de su código. Fue difícil escribirlo, y aun mucho mas entenderlo."

"Los ordenadores no son inteligentes. Solo creen que lo son."

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Funcion Pilas C
« Respuesta #3 en: Lunes 23 de Julio de 2007, 16:33 »
0
:P  :P  :P  :P  :P


Algoritmo de la función "push":

   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.

void Push(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;
}
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]