1 / 22

Estructura de Datos PILA

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

nida
Download Presentation

Estructura de Datos PILA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estructura de DatosPILA 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, FirstOut). 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 • Pila, como vector de n elementos y una variable global tope. • 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. OPERACIONES

  16. OPERACIONES

  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 subexpresionesparentizadas tendrán más prioridad que cualquier operador

  18. NOTACIÓN INFIJA, POSTFIJA, PREFIJA

  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

More Related