Sunteți pe pagina 1din 8

ESTRUCTURA DE DATOS - PILAS LIFO Son aquellas que solo tiene 2 operaciones, Push(Insercin) y Pop(Eliminacin) la cual solo se puede

efectuar por un extremo llamado Top. Sin Embargo se le pueden aplicar todas las operacines al igual que a las listas. 1.- Recorrido Definicin: Ya que las pilas son LIFO(Last in - First Out) el Recorrido se hace sacando el ultimo dato que se inserto hasta que no encuentre ningn otro. Detalle: Apuntador toma el Top, despus ve si la condicin cumple para efectuar un Ciclo mientras Apuntador sea diferente de Nulo, si cumple lo que hace es que despliega el contenido de la Pila(Pila[Apuntador]), despus Apuntador se le resta 1. Este proceso se repite hasta que Apuntador sea igual Nulo(Cuando llega a este punto la Pila ya fue Recorrida). Algoritmo:

Recorrido(Pila, Top) Apuntador - Top Repetir mientras Apuntador ≠ Nulo Imprimir Pila[Apuntador] Apuntador - Apuntador - 1 Fin del ciclo Salir

Diagrama:

Corrida:

Push Definicin: Push es simplemente el mtodo por el cual va agregando un Dato nuevo a la Pila tomando en cuenta la Capacidad Mxima (Max) de almacenar un dato. Detalle: Compara en un principio el Top con Max, si la condicin no cumple es imposible insertar mas datos a la Pila, de otra forma lo que hace es Incrementar el valor de Top, y copia el valor de Elemento en Pila[Top]. De esta forma el dato ya esta insertado.

Algoritmo:

Push(Pila, Top, Max, Elemento) Si Top ≠ Max Top - Top + 1 Pila[Top] - Elemento Si no: Imprimir Pila Llena Salir
Diagrama:

Corrida:

Pop Definicin: Pop es simplemente el mtodo por el cual va sacando el ultimo Dato de la Pila, basndose nicamente en el Top. Detalle: Compara para determinar si la pila esta vacio, de otra forma lo que hace es Imprimir el valor de Pila[Top] (Que es el dato que esta apunto de Eliminar) y enseguida a Top le resta 1, de esta forma el dato ya no existe. Algoritmo:

Pop(Pila, Top) Si Top ≠ Nulo Imprimir Pila[Top] Top - Top - 1 Si no: Imprimir Pila Vaca Salir

Diagrama:

Corrida:

Bsqueda Este mtodo usa el recorrido para encontrar Elemento y desplegar un mensaje si la bsqueda es exitosa. Detalle Algoritmo: El algoritmo compara para determinar si la Pila tiene desplegara Lista Vaca y saldr. De otra manera har cada uno de los Datos de la Pila hasta encontrar el encuentra desplegara El Dato fue encontrado de encontr. Busqueda(Pila, Top, Elemento) Si Top ≠ Nulo Apuntador - Top Repetir mientras Apuntador ≠ Nulo Si Pila[Apuntador] = Elemento Imprimir El Dato fue encontrado y Salir Apuntador - Apuntador - 1 Fin del ciclo Imprimir El Dato no se encontr Si no: Imprimir Pila Vaca Salir algn dato, si no simplemente un Recorrido y comparara con dato que desea buscar. Si lo otra manera El Dato no se

Diagrama:

Corrida:

Eliminacin Definicin: Este mtodo busca un Dato dentro de la pila y lo elimina. Detalle: El algoritmo compara para determinar si la Pila tiene algn dato, si no simplemente desplegara Pila Vaca y saldr. De otra manera har un Recorrido y comparara con cada uno de los Datos de la Pila hasta encontrar el dato que desea eliminar, mientras hace esto copia cada uno de los datos a un arreglo Temp para cuando encuentre el

Dato regresar esos valores a la Pila. Si lo encuentra desplegara Eliminado el Dato y le restara 1 a Top, de otra manera El Dato no encontrado. Algoritmo:

Borrar(Pila, Temp, Top, Elemento) Si Top ≠ Nulo Apuntador1 - Top Repetir mientras Apuntador1 ≠ Nulo Si Pila[Apuntador1] = Elemento Imprimir Eliminando el Dato Repetir mientras Apuntador2 ≠ Nulo Pila[Apuntador1]=Temp[Apuntador2] Fin del ciclo Top - Top - 1 y Salir Si No: Temp[Apuntador2] - Pila[Apuntador1] Apuntador1 - Apuntador1 - 1 Apuntador2 - Apuntador2 + 1 Fin del ciclo Imprimir Dato no encontrado Si no: Imprimir Pila Vaca Salir

Diagrama:

Corrida:

S-ar putea să vă placă și