UNIDAD 3: ESTRUCTURA DATOS PILAS LIFO

Definición:

Son aquellas que solo tiene 2 operaciones, Push(Inserción) y Pop(Eliminación) la cual solo se puede efectuar por un extremo llamado Top. Sin Embargo se le pueden aplicar todas las operaciónes al igual que a las listas.

1.- Recorrido

Definición:

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 ningún otro.

Detalle:

Apuntador toma el Top, después ve si la condición 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]), después 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:

image562.jpg

Corrida:

image526.jpg

Push

Definición:

Push es simplemente el método por el cual va agregando un Dato nuevo a la Pila tomando en cuenta la Capacidad Máxima (Max) de almacenar un dato.

Detalle:

Compara en un principio el Top con Max, si la condición 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:

image563.jpg

Corrida:

image564.jpg

Pop

Definición:

Pop es simplemente el método por el cual va sacando el ultimo Dato de la Pila, basándose ú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 Vacía”

Salir


Diagrama:

image565.jpg

Corrida:

image566.jpg

Búsqueda

Definición:

Este método usa el recorrido para encontrar Elemento y desplegar un mensaje si la búsqueda es exitosa.

Detalle:

El algoritmo compara para determinar si la Pila tiene algún dato, si no simplemente desplegara Lista Vacía 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 buscar. Si lo encuentra desplegara “El Dato fue encontrado” de otra manera “El Dato no se encontró”.

Algoritmo:


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 Vacía”

Salir


Diagrama:

image567.jpg

Corrida:

image568.jpg

Eliminacion

Definición:

Este método busca un Dato dentro de la pila y lo elimina.

Detalle:

El algoritmo compara para determinar si la Pila tiene algún dato, si no simplemente desplegara Pila Vacía 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 Vacía”

Salir


Diagrama:

image569.jpg

Corrida:

image570.jpg

Programa click here

 


 


Driven by DokuWiki

Politica de Privacidad