Dev - C++ - estructura de datos:pilas

   
Vista:

estructura de datos:pilas

Publicado por bRENDA (1 intervención) el 08/10/2012 04:52:10
Hola a todos tengo un programa de pilas pero tengo que agregar al programa un menú con las opciones de
INSERTAR NUEVO ELEMENTO, y BORRAR UN ELEMENTO,
después de hacer cada una de estás dos operaciones mostrar
que elementos se encuentran en la lista. y la verda no tengo ni una idea de como hacerle..

Gracias!!

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

typedef struct _nodo{
int valor;

struct _nodo *siguiente;
}tipoNodo;

typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;


/*Funciones con pilas*/
void Push(Pila *l, int v);
int Pop(Pila *l);


int main()
{
Pila pila = NULL;
pNodo p;

Push(&pila, 20);
Push(&pila, 10);
Push(&pila, 40);
Push(&pila, 30);

printf("%d, ", Pop(&pila));
printf("%d, ", Pop(&pila));
printf("%d, ", Pop(&pila));
printf("%d\n ", Pop(&pila));

system("PAUSE");
return 0;
}

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 continuacion del nuevo nodo*/
nuevo->siguiente = *pila;
/*Ahora el comienzo de nuestra pila es un nuevo nodo*/
*pila = nuevo;
}
int Pop(Pila *pila)
{
pNodo nodo; /*variable auxiliar para manipular nodo*/
int v; /*variable auxiliar para retorno*/

/*nodo apunta al primer elemento de la pila*/
nodo = *pila;
if(!nodo)return 0; /*si no hay nodos en la pila retornamos 0*/

/*asignamos a pila toda la pila menos el primer elemento*/
*pila = nodo->siguiente;

/*guardamos el valor de retorno*/
v = nodo->valor;

/*borrar el nodo*/
free(nodo);
return v;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Estructura de datos: Pilas

Publicado por cechaconl (1 intervención) el 19/10/2016 07:38:44
Hola Brenda gusto en saludarte, imagino que esta estructura te podria ser de ayuda para declarar el menu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void menu(void);
void ingresar (void);
void sacar(void);
void actualizar_pila(void);
 
main(){
    menu();
}
void menu(){
    int y,opc;
    for(;;){
         printf("\n Menu Pila \n");
         printf("\n 1- Ingresar Datos");
         printf("\n 2- Sacar Datos");
         printf("\n 0- Terminar");
         printf("\n\n Ingrese una Opcion: ");
         scanf("%d",&opc);
         switch(opc){
             case 1:
                   ingresar();
                   break;
             case 2:
                   sacar();
                   break;
             case 0:
                   exit(0);
                   default:
                   printf("\n Opcion errada \n");
                   break;
         }
         actualizar_pila();
             printf("\n Oprima cualquier tecla para continuar \n");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar