Pilas en Java

13
PILAS

description

prevé introducción a las pilas en java

Transcript of Pilas en Java

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 1/13

PILAS

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 2/13

CONCEPTO DE PILA

Una pila (stack) es unacolección ordenada de

elementos a los cuales

sólo se puede acceder

por un único lugar oextremo de la pila.

Los elementos se añaden

o se quitan (borran) de lapila sólo por su parte

superior (cima).

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 3/13

Las pilas se conocen también como estructuras LIFO

(Last-in, first-out, último en entrar primero en salir).

Las pilas se utilizan en compiladores, sistemas operativos

y programas de aplicaciones.

Una aplicación interesante es la evaluación de

expresiones aritméticas

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 4/13

Las entradas de la pila

deben ser eliminadas

en el orden inverso alque se situaron en la

misma.

Las operaciones usuales en la pila son Insertar y Quitar .

La operación Insertar

(push) añade un

elemento en la cima

de la pila.

La operación Quitar(pop) elimina o saca un

elemento de la pila.

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 5/13

La pila se puede implementar de las siguientes formas

Guardando los elementos en un array, en cuyo caso su

dimensión o longitud es fija.

Utilizar un vector para almacenar los elementos

Otra forma de implementación consiste en construir una lista

enlazada.

De modo que cada elemento de la pila

forma un nodo de la lista.

La lista crece o decrece según se añaden o

se extraen, respectivamente, elementos de

la pila; ésta es una representación dinámica,

y no existe limitación en su tamaño excepto

la memoria de la comutadora.

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 6/13

Una pila puede estar vacía (no tiene elementos) o llena (en la

representación con un array—

arreglo—

, si se ha llegado al últimoelemento).

Si un programa intenta sacar un elemento de una pila vacía, se

producirá un error, una excepción, debido a que esa operación es

imposible;

Por el contrario, si un programa intenta poner un elemento en

una pila llena, se produce un error, una excepción, de

desbordamiento (overflow ).

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 7/13

Para evitar estas situaciones se diseñan métodos que

comprueban si la pila está llena o vacía.

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 8/13

PILA IMPLEMENTADA CON ARRAYS 

Insertar ( push) 1. Verificar si la pila no está llena.

2. Incrementar en 1 el índice de la pila.

3. Almacenar elemento en la posición del índice de la pila.

Quitar ( pop)  1. Verificar si la pila no está vacía.

2. Leer el elemento de la posición del índice de la pila.

3. Decrementar en 1 el puntero de la pila.

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 9/13

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 10/13

PILA IMPLEMENT ADO COMO UN A LISTA

ENLAZADA

Esta realización tiene la ventaja de que el tamaño se ajusta

exactamente al número de elementos de la pila. Sin embargo, para

cada elemento es necesaria más memoria ya que hay que guardar

el campo de enlace entre nodos consecutivos

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 11/13

PILA IMPLEMENT ADO COMO UN A LISTA

ENLAZADA

class NodoPila

class PilaListapilaVacia()

push(tipo elemento)

quitar()

cimaPila()

limpiarPila()

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 12/13

7/18/2019 Pilas en Java

http://slidepdf.com/reader/full/pilas-en-java-56d77b17a842f 13/13

Stack 

La clase Stack es una clase de las llamadasde tipo LIFO (Last In - First Out, o

último en entrar - primero en salir).

Las operaciones básicas son :

push (que introduce un elemento en la pila).

pop (que saca un elemento de la pila).

peek (consulta el primer elemento de la cima de la pila).

empty (que comprueba si la pila está vacía)

search (que busca un determinado elemento dentro de la pila y devuelve

su posición dentro de ella).