Você está na página 1de 11

PRESENTADO POR:

TATIANA LIZETH MEDINA REYES


CODI : 0190081039

CODIGO DE UNA PILA


PILA
Una pila es un tipo especial de lista abierta en
la que slo se pueden insertar y eliminar nodos
en uno de los extremos de la lista. Adems, las
escrituras de datos siempre son inserciones de
nodos, y las lecturas siempre eliminan el nodo
ledo.
Estas caractersticas implican un
comportamiento de lista LIFO, el ltimo en
entrar es el primero en salir.
EJEMPLO DE UNA PILA

Se puede usar para un soporte en tiempo de


compilacin y ejecucin del Pascal utiliza una
pila para llevar la cuenta de los parmetros de
procedimientos y funciones, variables locales,
globales y dinmicas. Este tipo de estructuras
tambin son utilizadas para traducir
expresiones aritmticas o cuando se quiere
recordar una secuencia de acciones u objetos
en el orden inverso del ocurrido.
PROGRAMA PASO A PASO DE UNA PILA
#include<stdio.h> Define los tipos y macros necesitados para el paquete definido de I/O

Declara varias funciones usadas llamando la consola del sistema operativo las
#include<conio.h> rutinas de I/O. CLRSCR

#include<iostream.h> define varios operadores particulares, llamados manipuladores CIN , COUT

Contiene los prototipos de funciones de C para gestin de memoria dinmica,


#include<stdlib.h> control de procesos y otras MALLOC , FREE

diseado para operaciones bsicas con caracteres. Contiene los prototipos de


#include<ctype.h> las funciones y macros para clasificar caracteres.

#include<string.h> Declara varios cadenas-manipulacin y memorias de rutinas de


manipulacin .
DECLARACION DE VARIABLES
struct dato
{
char nombre[30]; CARCTER
int edad; ENTERO
long codigo; ENTERO LARGO
};

dato pila[10];
dato pilaaux[10];
int tope=0; ENTERO
int topeaux=0; ENTERO
char op; CARCTER
int ed,cod,x; ENTERO
char nom[30]; CARCTER
char cadena[10]; CARCTER
int *top; ENTERO
PRIMERA FUNCION ADICIONAR UN DATO EN LA
PILA
void adicionar(dato pil[],int *top,char
nom[],int ed,long codigo)
{
if(*top==) 10
{
cout<<" PILA LLENA ";
} EN ESTA PILA SOLO SE PUEDEN
else ALMACENAR 10 DATOS PS SU TOPE ES
{ IGUAL A 10
strcpy (pil[tope].nombre,nom);
pil[tope].edad=ed;
pil[tope].codigo=codigo;
cout<<" REGISTRO REALIZADO ";
tope++;
}
}
PROCEDIMIENTO

maria

strcpy (pil[tope].nombre,nom); 18
pil[tope].edad=ed;
pil[tope].codigo=codigo;
0123
cout<<" REGISTRO REALIZADO ";

REGISTRO REALIZADO

ESTE MISMO PROCEDIMIENTO SE


HACE 10 VECES SI UNO QUIERE .
SEGUNDA FUNCION MOSTRAR DATOS EN LA
PILA
void mostrarp()
{
int i,f=20;
clrscr();
if(tope==0) PEPITO
{

32
cout<<" PILA VACIA ";
} 1234
else
{
for(i=0;i<tope;i++)
{
gotoxy(5,f-2); cout<<" NOMBRE: "<<pila[i].nombre;
gotoxy(5,f-1); cout<<" EDAD: "<<pila[i].edad;
gotoxy(5,f);cout<<" CODIGO: "<<pila[i].codigo;
f=f-4;
}
}
getch();
}
void eliminar(char cadena[])
{
int i,j;
if(tope==0)
{
cout<<" PILA VACIA ";
}
else
{
for(i=0;i<tope;i++)
{
if(strcmp (cadena,pila[i].nombre)==0)
{
for(j=tope-1;j>i;j--)
{
adicionar(pilaaux,&topeaux,pila[j].nombre,pila[j].edad,pila[j].codigo);
atender(&tope);
}
tope=tope-1;
for(j=topeaux-1;j>=0;j--)
{

adicionar(pila,&tope,pilaaux[j].nombre,pilaaux[j].edad,pilaaux[j].codigo);
atender(&topeaux);
}
break;

TERCERA FUNCION

}
}

ELIMINAR if(i==tope)
cout<<" ESTA ELIMINADO ";
}
}
CUARTA FUNCION ESTADO DE LA PILA
LA PILA TIENE 2 ELEMENTOS void estado_pila()
{
clrscr();
if(tope==0)
{
gotoxy(12,12);
cout<<" LA PILA NO TIENE
ELEMENTOS ";
}
else
{
gotoxy(12,10);
cout<<" LA PILA TIENE "<<tope<<"
ELEMENTOS ";
}
getch();
}
QUINTA FUNCION ATENDER UN ELEMENTO
void atender(int *top) ELEMENTO ATENDIDO
{
if(*top==0)
{
cout<<" NO HAY ELEMENTOS ";
}
else
{
*top=*top-1;
cout<<" ELEMENTO ATENDIDO ";
}
getch();
}

Você também pode gostar