ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Uso De Pilas Y Colas


Enviado por   •  19 de Julio de 2013  •  2.212 Palabras (9 Páginas)  •  457 Visitas

Página 1 de 9

UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA

Centro Regional de Chiquimulilla, Facultad de Ingeniería en Sistemas

Curso: Estructuras de Datos

Catedrática: Inga. Kélita Mayorga.

LABORATORIO # 1 Pilas.

UTILIZACION DE PILAS COMO ESTRUCTURAS DE DATOS

Una pila es una estructura de datos en donde el primer elemento que entra es el último en salir, y por consiguiente el último en ingresar será el primero en salir.

Las operaciones básicas que se manejan en pilas son:

• Push: ingresar un elemento en la pila.

• Pop: eliminar un elemento de la pila.

• Consulta tope: consultar el elemento que sigue en la pila.

• Lleno: consulta si la pila está llena.

• Vacío. Consulta si la pila esta vacía.

PUNTOS A CONSIDERAR

• Para manejar la pila con vectores manejamos un número máximo de elementos y una variable llamada tope la cual nos indica cual es el elemento que sigue en la pila.

• Sabemos que la pila esta llena cuando el tope llega al máximo número de elementos de esta

• Sabemos que esta vacía cuando el tope esta en el valor que inicialmente se le da (normalmente –1 si lo hacemos en C++)

• Para ingresar un elemento en la pila primero incrementamos el tope y después guardamos el elemento en esa posición.

• Para remover un elemento de la pila decrementamos el tope.

EJEMPLO MANEJANDO EL ARREGLO COMO PARTE DE LA CLASE.

#include <conio.h>

#include <iostream.h>

#define max 20

class pila

{

int *elemento; //atributos

int tope; //atributos

public:

pila(); // constructor

~pila(); // destructor

int lleno(); //funciones xq debuelben algo

int vacio();

void push(int); //procedimientos

void pop(void);

void topepila(void);

};

int pila::lleno()

{

if (tope==max-1)

return 1;

else

return 0;

}

int pila::vacio()

{

if (tope==-1)

return 1;

else

return 0;

}

void pila::pila( )

{

tope =-1;

elemento = new int [max]; //sera un arreglo de enteros de tamano 20

}

void pila::~pila( )

{

delete [] elemento;

}

void pila::push(int dato)

{

if (lleno())

cout<<"Hay un desbordamiento en la pila ";

else

{

tope++;

elemento[tope]=dato;

cout<<"Se inserto el elemento en la pila";

}

getch();

}

void pila::pop(void)

{

if (vacio())

cout<<"Hay un subdesbordamiento";

else

{

cout<<"El elemento "<<elemento[tope]<<"sera borrado";

tope--;

}

getch();

}

void pila::topepila(void)

{

if (vacio())

cout<<"No hay nada";

else

cout<<"Elemento "<<elemento[tope];

getch();

}

void main()

{

pila p;

int datos,op;

do

{

clrscr();

cout<<"Menu\n1.Push\n2.Pop\n";

cout<<"3.Consultar\n4.Salir\nque opcion";

cin>>op;

switch(op)

{

case 1:clrscr();

cout<<"Que dato quieres ";

cin>>datos;

p.push(datos);

getch();

break;

case 2:

clrscr();

p.pop();

getch();

break;

case 3: clrscr();

p.topepila();

}

}while(op!=4);

}

EJEMPLO MANEJANDO PILAS CON ARREGLOS DE ESTRUCTURAS.

#include <conio.h>

#include <iostream.h>

#define max 20

struct datos

{

int codigo;

char nombre[30];

};

class pila

{ //En este caso el elemento es de tipo estructura, pero se maneja igual

datos elementos[max];

int tope;

public:

pila();

int lleno();

int vacio();

void push(datos);

datos pop(void);

void topepila(void);

};

int pila::lleno()

{

if (tope==max-1)

return 1;

else

return 0;

}

int pila::vacio()

{

if (tope==-1)

return 1;

else

return 0;

}

pila::pila( )

{

tope =-1;

}

void pila::push(datos d)

{

if (lleno())

cout<<"Hay un desbordamiento en la pila ";

else

{

tope++;

elementos[tope]=d;

cout<<"Se inserto el elemento en la pila";

}

getch();

}

datos pila::pop(void)

{ datos aux;

if (vacio())

{

cout<<"Hay un subdesbordamiento";

aux.codigo=-1;

}

else

{

aux=elementos[tope];

tope--;

}

getch();

return aux;

}

void pila::topepila(void)

{

if (vacio())

...

Descargar como (para miembros actualizados) txt (9 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com