[C][?]Ayuda a resolver estos errores

Iniciado por Xcution, 1 Noviembre 2013, 13:44 PM

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

Xcution

He aquí un programa que hará su función de Gestión bibliotecaria con base en una pila, por favor me gustaría si me pueden ayudar a resolver el problema aquí está el programa..


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>




typedef nodo *ptrPila

struct nodo{
   int sgte;
   int nro;
   struct nodo *sgte;

};

 
     

void push(ptrPila &p, int valor )
{
    ptrPila aux;
    aux = new(struct nodo);  
    aux->nro = valor;
   
    aux->sgte = p ;
    p = aux ;
}


void pop( ptrPila &p )
{
    int num ;
    ptrPila aux;
   
    aux = p ;
    num = aux->nro;  
   
    p = aux->sgte ;
    delete(aux);
   
    return num;
}


void mostrar_pila( ptrPila p )
{
    ptrPila aux;
    aux = p;    
   
    while( aux !=NULL )
    {
          printf("aux->nro end");        
           aux = aux->sgte;
    }    
}


void destruir_pila( ptrPila &&p)
{
    ptrPila aux;
   
    while( p != NULL)
    {
          aux = p;
          p = aux->sgte;
          delete(aux);
    }
}


void menu()
{
   printf("\n          Biblioteca San Juan");
   printf("\n 1. Insertar Libros\n");
   printf(" 2. Sacar libro\n");
   printf(" 3. Ver lista de libros\n");
   printf(" 4. Llamar ultimo libro de la pila\n");
   printf(" 5. Presione 5 para salir");
   printf("Elija una opci%cn =>",162);
}


int main()
{
   ptrPila p = NULL;  // creando pila
   int dato;
   int op;
   int x ; // numero que devuelve la funcon pop
 
   

   do
   {
       menu();  
scanf("%i",&op);

       switch(op)
       {
           case 1:

                printf("\n Libros a apilar: ");
scanf("%i",&dato);
                push( "%p", &dato );
                printf("Libro apilado...\n\n");
           break;


           case 2:

                x = pop( p );
               printf("\n\n\Libro " x " desapilado...\n\n");
           break;
               

           case 3:

                printf("\n\n Mostrandolista \n\n");
                if(p!=NULL)
                   mostrar_pila( p );
                else
                   printf("Lista vacia");
           break;


           case 4:

                destruir_pila( p );
                printf("\n Pila de libros eliminada...\n\n");
           break;
         
        }

       
       system("pause");
 system("cls");

   }while(op!=5);
 
 
   return 0;
}

vangodp

hay como tropecientos errores creo.
te dire unos que eh visto no se si voy bien.
Pero bueno a ver si tallamos la piedra XD
en la linea de typedef quieres crear un puntero ¿No?
seria así o no se si tiene que ser distinto en c++ que es por donde me muevo mejor.
Creo que es así: typedef struct nodo *ptrPila;
Luego dentro de la estructura intentas declarar otra estructura con el mismo nombre o sea 2.
¿creo que quisiste hacer algo como esto?
struct nodo{
    int sgte;
    int nro;
   

}; nodo *sgte;

cuando llamas a la funcion push esperas una estructura por referencia sin embargo desde main le envias un int, eso no se si se puede hacer pero a ver si alguien mas ayuda :)
Y podías comentar algo mas tu código que esperas hacer con cada función así seria mas fácil ayudarte.
bueno seguire intentando un rato a ver si le pulimos algo ;)