Tengo este codigo es para manejar pilas en c pero no me quiere correr no le encuentro error espero que me puedan ayudar!!
Código (c) [Seleccionar]
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct stackNode STACKNODE;
typedef STACKNODE * STACKNODEP;
void push(STACKNODEP*, int);
int pop(STACKNODEP*);
int isVacia(STACKNODEP);
void imprimePila(STACKNODEP);
void menu(void);
void menu(void) {
printf("Opciones:\n");
printf("1. Insertar un nodo a la pila\n");
printf("2. Eliminar un nodo de la pila\n");
printf("3. Finalizar\n");
}
void imprimepila(STACKNODEP actualP) {
if (actualP == NULL) {
printf("La pila esta vacía");
}
else {
printf("La pila es:\n");
while (actualP != NULL) {
printf("%d->", actualP->data);
actualP = actualP->nextP;
}
printf("NULL\n\n");
}
}
int pop(STACKNODEP *topP) {
STACKNODEP tempP;
int sacarvalor;
tempP = *topP;
sacarvalor = (*topP)->data;
*topP = (*topP)->nextP;
free(tempP);
return sacarvalor;
}
void push(STACKNODEP *topP, int info) {
STACKNODEP nuevoP;
nuevoP = (STACKNODEP) malloc(sizeof(STACKNODE)); /*Correcion*/
if (nuevoP != NULL) {
nuevoP->data = info;
nuevoP->nextP = *topP;
*topP = nuevoP;
}
else {
printf("\n No se inserto el elemento %d en la pila", info);
}
}
struct stackNode {
int data;
struct stackNode * nextP;
};
int isVacia(STACKNODEP topP) {
return (topP == NULL);
}
int main()
{
STACKNODEP stackP = NULL;
int op, valor;
menu();
printf("\n Elige una opcion:");
scanf("%d", &op);
while (op != 3) {
switch (op) {
case 1:
printf("\n Teclea un entero");
scanf("%d", &valor);
push(&stackP, valor);
imprimePila(stackP);
break;
case 2:
if (!isVacia(stackP)) {
printf("\n El valor sacado es: %d", pop(&stackP));
}
imprimePila(stackP);
break;
default:
printf("\n Opcion no valida");
break;
}
printf("\n Elige una op");
scanf("%d", &op);
}
printf("\Fin de programa");
return 0;
}