Sie sind auf Seite 1von 9

Pilas

1. Definicin

La pila es un tipo de estructura de datos que almacena un conjunto de elementos los cuales se aceden por un solo extremo que generalmente se conoce como tope o cima. Las pilas se pueden representar mediante arreglos (vectores). Para poder utilizar una pila primero ser necesaria su identificacin y el tamao que tendr, adems se debe definir una variable auxiliar que es el tope, la cual nos permitir el acceso al ltimo dato ingresado en la pila. Por la forma particular en la que se trabajan las pilas, son conocidas como estructuras LIFO (Last- In, First-Out). La eliminacin de un elemento en una pila se realizar de forma inversa a la forma en que entraron, como consecuencia se podra afirmar que en una pila, el primero que entra es el ltimo en salir. Podramos comparar el funcionamiento de esta estructura como la organizacin de una pila de platos en un buffet o el amontonamiento de una pila de libros en donde el tamao mximo ser el techo ya que despus de hay no se pueden incluir ms libros o platos , el primero en ser colocado ser el ltimo en ser sacado y el ltimo en ser colocado ser el primero que salga.
Tamao mximo (Techo)

A N A L O G I A

Elem n Elem 7 Elem 6 Elem 5 Elem 4 Elem 3 Elem 2 Elem 1

Tope o cima de la pila

2. Operaciones bsicas.
Las pilas se le pueden realizar ciertas operaciones como incluir, eliminar, bsqueda entre otras pero estas son las ms bsicas. Insertar Algoritmo que incluye un elemento en la pila. Subrutina Inpila (pila,tam,tope,elem) Si(tope<tam) topetope+1 pila[tope]=elem Sino Esc Pila llena Fin - si Fin - subrutina Cancelacin Algoritmo que elimina un elemento en la pila.

Subrutina canpila (pila,tam,tope,elem) Si(tope=0) Esc Pila vaca Sino elempila[tope] Topetope-1 Fin - si Fin - subrutina

Bsqueda Algoritmo que verifica si un elemento se encuentra en la pila. Subrutina bsqueda (pila,tope,elem) Ptope Sw0 Si(tope=0) Esc Pila vaca Sino MQ (p<>0) Si (elem=pila[p]) Sw1 P 0 Sino Pp-1 Fin - si Fin - MQ Si (sw=1) Esc Se encontr el elemento Sino Esc No se encontr el elemento Fin - si Fin - si Fin subrutina

3. Ejercicios resueltos
1. Eliminar de una pila representada por medio de un vector todas las ocurrencias del elemento elem.

Pila original 8 8 6 8 4 8 2 1

Resultado de la operacin

6 4 2 1

Subrutina EliminarOcurrencias (pilas,tam,tope,elem) Tope10 MQ (tope<>0) Canpila (pila,tam,tope,elemp) Si (elemp<>elem) Inpila (pila1,tam,tope1,elemp) Fin - si Fin - MQ MQ (tope1<>0) Canpila (pila1;tam,tope1,elemp) Inpila (pila,tam,tope,elemp) Fin - MQ Fin - subrutina

2. Intercambiar el orden del elemento que est en el tope por el primer elemento de la pila, y el primer elemento ponerlo en el tope. Ejemplo: Pila original Elem n Elem 7 Elem 6 Elem 5 Elem 4 Elem 3 Elem 2 Elem 1 Resultado de la operacion Elem 1 Elem 7 Elem 6 Elem 5 Elem 4 Elem 3 Elem 2 Elem n

Subrutina Cambio (pila,tam,tope) Tope10 Canpila (pila tam,tope,ultimo) MQ (tope<>1) Canpila (pila,tam,tope,elemp) Inpila (pila1,tam,tope1,elemp) Fin - MQ Canpila (pila,tam,tope,primero) Inpila (pila,tam,tope,ultimo) MQ (tope1<>0) Canpila (pila1,tam,tope1,elemp) Inpila (pila,tam,tope,elemp) Fin - MQ Inpila (pila,tam,tope,primero) Fin subrutina

3. Ordenar de forma descendente de arriba hacia abajo, de abajo hacia arriba se vera de forma ascendente. Pila original 15 7 2 19 5 1 10 12 Resultado de la operacion 19 15 12 10 7 5 2 1

Subrutina Ordenar (pila,tam,tope) ptope qp MQ (p<>0) MQ (q<>0) Si (p<q) Kpila[q] Pila[q]pila[p] Pila[p]k Fin - si qq-1 Fin - MQ pp-1 qp Fin - MQ Fin - subrutina Nota: si se le cambia el signo < por> seria ordenar de arriba hacia debajo de forma ascendente y de abajo hacia arriba se vera de forma descendente.

4. Ejercicios propuestos
1. Intercambiar las posiciones de dos elementos en una pila representada por un vector. Las posiciones se brindaran por el usuario. Debe tenerse en cuenta que la posicin ingresada debe ser menor al tamao del vector como lo muestra el ejemplo: Pila = {30-40-50-10-5} Intercambiar elemento en la posicin 1=30 y elemento en la posicin 4=10 Pila = {10-40-50-30-5} 2. Insertar un elemento, despus o antes de una posicin X en una pila representada por medio de un vector, suponiendo que el tamao de la pila es lo suficientemente grande como lo muestra el ejemplo Pila = {5-30-20-16-17} insertar el numero 12 despus y antes de la posicin 3 Pila = {5-30-20-12-16-17} si el usuario decide insertar despus de la posicin. Pila = {5-30-12-20-16-17} si el usuario decide insertar antes de la posicin

5. Bibliografa
Cair, O & Guardati, S (2004) Estructura de datos McGraw-Hill: Mexico Mark Allen Weiss Estructura de datos y algoritmos-ADDISON WESLEY IBEROAMERICANA

Das könnte Ihnen auch gefallen