listas, pilas & colas

16
Estructuras de Datos Prof: Rina Familia ESTRUCTURA DE LISTAS, PILAS Y COLAS Jorge Luis Maria ~ 10-1333 UNIVERSIDAD IBEROAMERICANA ~ UNIBE

Upload: jorgeluis0317

Post on 22-Dec-2014

2.398 views

Category:

Technology


7 download

DESCRIPTION

Una breve explicación de las estructura de Listas, Pilas y colas en la materia de Estructura de datos en la Universidad Iberoamericana ~ UNIBE

TRANSCRIPT

Page 1: Listas, pilas & colas

Estructuras de DatosProf: Rina Familia

ESTRUCTURA DE LISTAS, PILAS Y COLAS

Jorge Luis Maria ~ 10-1333

UNIVERSIDAD IBEROAMERICANA ~ UNIBE

Page 2: Listas, pilas & colas

Indicar objetos reales que se puedan modelar con dicha estructura Lista de ordenes Lista de patrones de cualquier entidad Lista de elementos

Presentar varias definiciones de la misma- Una lista es una estructura de datos secuencial. Una manera de clasificarlas es por la forma de acceder al siguiente elemento:- Lista densa: la propia estructura determina cuál es el siguiente

elemento de la lista. Ejemplo: un array.- Lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además es dinámica, es decir, su tamaño cambia durante la ejecución del programa.

Estructura de Listas

Page 3: Listas, pilas & colas

Concepto:Las Listas son secuencias de 0 o más elementos de un tipo de datos almacenado en memoria. Son estructuras lineales donde cada elemento de una lista excepto el primero tiene un único predecesor y cada elemento de la lista excepto el ultimo tiene un sucesor.

Estructura de Listas

Page 4: Listas, pilas & colas

Proponer un TAD que modele las LISTAS Nombre: TAD Lista Invariante: n/a Operaciones: crearLista()*/ Devuelve un valor del tipo pila preparado para ser usado y que contiene un valor de pila vacía. Esta operación es la misma que la de las listas generales.*/ Precondiciones: N=0 Pos condiciones: Lista creada

Estructura de Listas

Page 5: Listas, pilas & colas

Relacionar el concepto de VENTANA con el de Lista

Una ventana es un área visual, normalmente de forma rectangular, que contiene algún tipo de interfaz de usuario, mostrando la salida y permitiendo la entrada de datos para uno de varios procesos que se ejecutan simultáneamente. Y un Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior.

Estructura de Listas

Page 6: Listas, pilas & colas

Describir las implementaciones de ListasPara representar en lenguaje C esta estructura de datos se utilizarán punteros, un tipo de datos que suministra el lenguaje. Se representará una lista vacía con la constante NULL. Se puede definir la lista enlazada de la siguiente manera:struct lista{int clave;struct lista *sig;};

Estructura de Listas

Page 7: Listas, pilas & colas

e1.- VectoresUtilizando una estructura de datos estática arreglo para representar e implementar el TDA LISTAS. Asumamos que los ELEMENTOS que contiene la LISTA son representados por el tipo ENTERO. La cantidad de ELEMENTOS que puede contener la LISTA tiene un máximo de n ELEMENTOS. Por lo que la representación formal de este tipo se define de la siguiente manera: Tipo LISTA= arreglo [1..n] de ENTEROS; VarL : LISTA;

Estructura de Listas

Page 8: Listas, pilas & colas

e2.- Listas doblemente enlazadasUna lista enlazada es una de las estructuras de datos

fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior.

El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.

Estructura de Listas

Page 9: Listas, pilas & colas

Mecanismos para implementar las listas.En el lenguaje C se utiliza los llamados

punteros para representar esta estructura de datos.

En java se encuentra un paquete completo en java.util de donde se pueden utilizar las listas, como un tipo abstracto de datos, este tipo de estructura de datos también se utiliza a partir y/o como una interfaz.

Estructura de Listas

Page 10: Listas, pilas & colas

Indicar objetos reales que se puedan modelar con dicha estructura Memoria de una pc Caja de objetos

Concepto

Una pila es un caso especial de lista en la cual todas las inserciones y supresiones tienen lugar en un extremo determinado llamado tope.

A las pilas se les llama también listas LIFO (last-in first-out) o listas “primero en entrar, primero en salir”. En el TDA Pila no se definen operaciones de posicionamiento en la pila. Esto es debido a que todas las operaciones de acceso se realizan en la misma posición, el tope de la pila.

Estructura de Pilas

Page 11: Listas, pilas & colas

TAD que modele las PILAS

Nombre: TAD PilaInvariante: n<>0Operaciones:crearPila()*/ Devuelve un valor del tipo pila preparado para ser usado y que contiene un valor de pila vacía. Esta operación es la misma que la de las listas generales.*/ Precondiciones: N=0 Pos condiciones: pila creada

insertarPila(crearPila)*/ mediante este método se insertan datos a la pila ya creada. Con las pilas se usa el método push para insertar*/Precondiciones: pila <> null Pos condiciones: insertarPila completado (datos insertados en pila)borrarPila()*/con este método se elmina cierta pila de datos */ Precondiciones: pila <> null Pos condiciones: pila eliminada

Estructura de Pilas

Page 12: Listas, pilas & colas

Concepto

Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In FirstOut), debido a que el primer elemento en entrar será también el primero en salir.Una cola es también una estructura de datos lineal en donde las eliminaciones se realizan por uno de sus extremos que normalmente se llama frente, y las inserciones se realizan por el otro extremo que normalmente se llama final. A estas estructuras se les llama FIFO (First In FirstOut).

Modelación Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In FirstOut), debido a que el primer elemento en entrar será también el primero en salir.

Estructura de Colas

Page 13: Listas, pilas & colas

TAD que modele las COLAS.Nombre: TAD COLAInvariante: n/aOperaciones:crearCola()*/ Devuelve un valor del tipo cola preparado para ser usado y que contiene un valor de pila vacía. Esta operación es la misma que la de las listas generales.*/ Precondiciones: N=0 Pos condiciones: cola vacia creada

insertarCola(crearCola)*/ mediante este método se insertan datos a la cola ya creada. */ Precondiciones: cola <> null Pos condiciones: datos insertados en cola, cola insertada.borrarCola()*/con este método se elmina cierta cola de datos */ Precondiciones: cola != 0 Pos condiciones: cola eliminada

Estructura de Colas

Page 14: Listas, pilas & colas

Particularidades de un TAD COLA con prioridades

Se introduce una forma de simular genericidad en los TADs de Modula-2 mediante el uso del TAD ITEM.En una cola de prioridad los elementos están ordenados dependiendo de su prioridad, de manera que esté disponible (para las operaciones Frente y Extraer) el elemento de máxima prioridad. En caso de igualdad se sigue la regla FIFO, de dos elementos con igual prioridad sale primero el que primero entró. Esto se puede conseguir bien insertando ordenadamente y extrayendo el primer elemento, bienDpto

Estructura de Colas

Page 15: Listas, pilas & colas

Implementaciones de COLAS con vectores circulares

public class Cola { private static int max = 100; private Object elementos[]; private intfrente, post; } // fin clase Cola

Estructura de Colas

Page 16: Listas, pilas & colas

Graci

as

• http://www.calcifer.org/documentos/librognome/glib-lists-queues.html

• http://quegrande.org/apuntes/EI/2/Alg/teoria/08-09/tema_2_-_pilas,_colas,_listas.pdf

Fuentes: