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


0