La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López.

Presentaciones similares


Presentación del tema: "Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López."— Transcripción de la presentación:

1 Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López

2 PILAS Se caracteriza por ser una estructura de datos en la que el último elemento que se añade a la estructura es el primero en salir. Este modo de funcionamiento se conoce como política LIFO (Last In, First Out). El elemento que ocupa el extremo de la pila y su posición se denomina TOPE. Funciones básicas: APLICAR (METER): añadir un elemento en la posición siguiente a la del tope actual. DESAPILAR (SACAR): elimina el elemento situado en el tope.

3 PILAS Al ser una estructura LIFO, la pila devuelve la información en orden contrario al de almacenamiento. DEFINICIÓN: Una pila es una estructura ordenada y homogénea, en la que podemos aplicar o desapilar elementos en una única posición llamada TOPE, siguiendo una política LIFO.

4 AXIOMAS 1) Pilavacia (CrearPila) = Verdadero 2) Pilavacia (Apilar (S, e)) = Falso 3) Desapilar (CrearPila) = error 4) Desapilar (Apilar (S, e)) = S 5) Tope (CrearPila) = error 6) Tope (Apilar (S, e)) = e

5 DIFERENCIAS CON VECTORES En un vector puede accederse a cualquiera de sus elementos. En una pila sólo puede accederse a uno de sus elementos, el situado en el tope. Un vector es un conjunto finito, mientras en una pila no hay condiciones de límite de elementos. Para obviar estas diferencias, la implementación mediante vectores debe hacerse teniendo en cuenta: Además del vector se necesita otro dato que indique cuál es en cada momento el elemento tope de la pila en el vector. Si se implementa la pila mediante vectores, se está restringiendo el concepto de pila.Esto es así, porque al tener los vectores un tamaño constante y predeterminado, en la propia definición de la pila se impone un máximo al número de elementos que va a tener.

6 IMPLEMENTACIÓN 1.Pila, como vector de n elementos y una variable global tope. 2.Pila, como un registro con dos campos, uno de ellos el vector y otro el tope.

7 IMPLEMENTACIÓN

8 OPERACIONES PROCEDURE CrearPila (VAR s: TipoPila); BEGIN s.tope := 0 END; FUNCTION PilaVacia (s: TipoPila): BOOLEAN; BEGIN PilaVacia := s.tope=0 END;

9 OPERACIONES PROCEDURE Desapilar (VAR s: TipoPila; VAR error: BOOLEAN); BEGIN IF PilaVacia(s) THEN error := true ELSE BEGIN error := false; dec(s.tope) END END;

10 OPERACIONES FUNCTION PilaTope (s: TipoPila; var error:boolean) : Integer; BEGIN IF PilaVacia(s) THEN error := true ELSE BEGIN error := false; PilaTope := s.elementos[s.tope] END END;

11 OPERACIONES PROCEDURE Apilar ( VAR s: TipoPila; e: TipoBase); BEGIN INC(s.tope); s.elementos[s.tope] := e; END;

12 OPERACIONES FUNCTION PilaLlena (s: TipoPila): BOOLEAN; BEGIN PilaLlena := s.tope=MaxElementos END;

13 OPERACIONES PROCEDURE Apilar ( VAR s:TipoPila; e:TipoBase; VAR error:BOOLEAN); BEGIN IF PilaLlena(s) THEN error := true ELSE BEGIN error := false; INC(s.tope); s.elementos[s.tope] := e END END;

14 OPERACIONES

15

16

17 NOTACIÓN INFIJA, POSTFIJA, PREFIJA Dada la expresión A+B se dice que está en notación infija y su nombre se debe a que el operador (+) está entre los operandos A y B. Dada la expresión AB+ se dice que está en notación postfija, y su nombre se debe a que el operador(+) está después de los operandos. Dada la expresión +AB se dice que está en notación prefija, y su nombre se debe a que el operador(+) está antes de los operandos (A y B) Los operadores de más alta prioridad se ejecutan primero. Si hubieraen una expresión dos o más operadores de igual prioridad se procesarán de izquierda a derecha. Las subexpresiones parentizadas tendrán más prioridad que cualquier operador PROPIEDADES DE LOS OPERANDOS ^ (Potencia) * / (multiplicación y división) + - (suma y resta)

18 NOTACIÓN INFIJA, POSTFIJA, PREFIJA PasoExpresiónPasoExpresión 0X+Z*W0(X+Z)*W/T^Y-V 1X+ZW*1XZ+*W/T^Y-V 2XZW*+2XZ+*W/TY^-V 3XZ+W*/TY^-V 4XZ+W*TY^/-V 5XZ+W*TY^/V- PasoExpresiónPasoExpresión 0X+Z*W0(X+Z)*W/T^Y-V 1X+*ZW1+XZ*W/T^Y-V 2+X*ZW2+XZ*W/^TY-V 3*+XZW/^TY-V 4/*+XZW^TY-V 5-/*+XZW^TYV

19 Ejercicio Garaje Se tiene un garaje con una sola entrada y cuyo ancho es tal que solo puede estacionar un auto detrás de otro. Cuando llega un auto se coloca detrás de los otros. Los autos se identifican por la placa. Utilizando el TAD Pila escribir un programa que simule el funcionamiento del garaje.

20 Estructura

21 Procedimientos

22


Descargar ppt "Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López."

Presentaciones similares


Anuncios Google