Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/10/2010, 00:49
Avatar de Lizy94
Lizy94
 
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: duda con pilas

oye gracias me has dado una mejor idea en cuanto a pilas, el código lo modifique un poco aunque sigue = de sencillo, y me marca unos errores, es este

Código PHP:

typedef struct Spila
{
 
int item[30];   //elementoa
 
int top;//cima
};

void crea(Spila *);
int estaVacia(Spila *);
int estaLlena(Spila *);
void push(Spila *,int);
void pop(Spila *,int *);
Spila pila;
    
int e;
    
int dato,Sdato;

void main()
{

    
int opcion;
    
cout<<"Inserta una expresion\n";
    
cout<<"QUE DEDEAS HACER <inserta el numero de la operacion deseada>\n\n";

    
cout<<"1. insertar en la pila ";
    
cout<<"2. eliminar un elemento de la pila";
    
cout<<"3. visualizar la pila";
    
cin>>opcion;

    switch(
opcion)
    {
        case 
1:
                 
crea(&pila);

                 if(
estaLlena(&pila)){ printf("\nPila llena."); getch();}
                 else
                     {
                  
cout<<"inserta un dato";
                  
cin>>dato;
                  
push(&pila,dato);
                  
Sdato=pop(&pila,&e);//not an allowed in function main()
                  
cout<<"la cima de la pila es"<<Sdato<<"\n";
                  
push(&pila,dato);
                  
getch();
                  }

                break;
        case 
2:

                
cout<<"en proceso";
                break;
        default:
                break;
    }
    
getche();
}

void crea(Spila *pila) { pila->top=-1;}

int estaVacia(Spila *pila)
int vacia;
  if(
pila==-1){vacia=0;}else {vacia=1;}//cannot convert to int to Spila*
  
return vacia;
}
int estaLlena (Spila *pila ) { return(pila==30);}//cannot convert to int to Spila*
void push(Spila *pila,int e){ pila->item[++pila->top]=e;}
void pop(Spila *pila,int *e){ *e=pila->item[pila->top--];} 
a segun yo no le veo el error, y otra duda también
lo quise probar con malloc y eliminé lo que son las funciones de crea, estaVacia y estaLlna y cree esta funcion

Código PHP:
int iniciaPila(Spila *pila)
{
 
Spila *size;
 
int vacia;
 
size=(pila*)malloc(sizeof(struct Lista));
 if(
size!=NULL)
 {
vacia=0;}
 else
 {
vacia=1;}
 return 
vacia;

y en el main quedó así, aunqe me marca varios errores,

Código PHP:

    
case 1:
                    case 
1:
                 
iniciaPila(&pila);

                 if(!
iniciaPila(&pila)){ printf("\nPila llena."); getch();}
                 else
                     {
                  
cout<<"inserta un dato";
                  
cin>>dato;
                  
push(&pila,dato);
                  
Sdato=pop(&pila,&e);
                  
cout<<"la cima de la pila es"<<Sdato<<"\n";
                  
push(&pila,dato);
                  
getch();
                  }

                break; 
si me pudieses decir q esta mal de favor en el primer código y dar una idea gral para implementar en este codigo la instruccion malloc por favor

Última edición por Lizy94; 06/10/2010 a las 01:05