Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Alex0101

#1
Programación C/C++ / Programacion de Pilas en C
14 Febrero 2016, 01:28 AM
Tengo este codigo es para manejar pilas en c pero no me quiere correr no le encuentro error espero que me puedan ayudar!!

#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;
}