Listas, pilas y colas richard ramos 09-1130

19
Richard Ramos 09-1130

Transcript of Listas, pilas y colas richard ramos 09-1130

Page 1: Listas, pilas y colas   richard ramos 09-1130

Richard Ramos 09-1130

Page 2: Listas, pilas y colas   richard ramos 09-1130

Indicar objetos reales que se puedan modelar

con dicha estructura.

o Lista de pacientes

o Listas de Ordenes de visitas (hospital…)

o Lista de aplicaciones

Page 3: Listas, pilas y colas   richard ramos 09-1130

Una manera de clasificarlas es por la forma de acceder al siguiente elemento

Una lista es una estructura de datos secuencial.

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.

Page 4: Listas, pilas y colas   richard ramos 09-1130

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

Page 5: Listas, pilas y colas   richard ramos 09-1130

insertar(crearLista, x pos)

*/ mediante este método se insertan datos a la Lista ya creada. Inserta elemento x en pos */

Precondiciones: pos != null

Pos condiciones: insertarLista completado (dato insertado en Lista)

FIN():

*/Retorna la posición del último elemento, en otras palabras el “fin” de la lista, también se puede considerar con el tamaño de la lista. Sí la lista está vacía retorna una posición invalida que podría ser -1. */

Precondiciones: n/A

Pos condiciones: operación finalizada

Page 6: Listas, pilas y colas   richard ramos 09-1130

Siguiente(pos)

*/con este método se Retorna pos + 1, si pos es igual o mayor a FIN(), retorna FIN(). */

Precondiciones: pos != 0

Pos condiciones: retorna pos

anterior(pos)

*/con este método se Retorna pos – 1. */

Precondiciones: pos != 0

Pos condiciones: retorna pos

limpiar(pos)

*/Limpia la lista y Finaliza FIN()*/

Precondiciones: n…n+1, pos = 0

Pos condiciones: Lista vacia…

Page 7: Listas, pilas y colas   richard ramos 09-1130

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.

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.

Page 8: Listas, pilas y colas   richard ramos 09-1130

La relación es que con ambos términos nos

referimos a manipulación de datos sin importar el

orden de los mismos, solo el acceso y su

modificación.

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.

Page 9: Listas, pilas y colas   richard ramos 09-1130

Listas doblemente enlazadas

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.

Una 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.

Page 10: Listas, pilas y colas   richard ramos 09-1130

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.

Page 11: Listas, pilas y colas   richard ramos 09-1130

Basicamente tenemos estas operaciones:

Pop: remueve la data del tope de la pila.

Push: inserta la data en el tope de la pila.

Page 12: Listas, pilas y colas   richard ramos 09-1130

Son estructuras utilizadas muy a menudo como

herramientas de programación de tipo LIFO

(Last in-First out)

Permiten el acceso solo a un elemento a la vez:

el último elemento insertado

La mayoría de los procesadores utilizan una

arquitectura basada en pilas

Page 13: Listas, pilas y colas   richard ramos 09-1130

Nombre: TAD Pila

Invariante: n<>0

Operaciones:

crearPila()

o */ 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.*/

o Precondiciones: N=0

o Pos condiciones: pila creada

Page 14: Listas, pilas y colas   richard ramos 09-1130

insertarPila(crearPila)

o */ mediante este método se insertan datos a la pila ya

creada. Con las pilas se usa el método push para insertar*/

o Precondiciones: pila <> null

o Pos condiciones: insertarPila completado (datos

insertados en pila)

borrarPila()

o */con este método se elmina cierta pila de datos */

o Precondiciones: pila <> null

o Pos condiciones: pila eliminada

Page 15: Listas, pilas y colas   richard ramos 09-1130

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 First Out).

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.

Page 16: Listas, pilas y colas   richard ramos 09-1130

o Desencolar: elimina un dato del principio de la cola

o Encolar: agrega un nuevo dato al final de la cola

Page 17: Listas, pilas y colas   richard ramos 09-1130

Encolar y Desencolar se realizan en tiempo

constante; No es necesario hacer ninguna

comparación.

El tiempo de ejecución de las operaciones

primarias de una colas no depende del tamaño de

la cola

Page 18: Listas, pilas y colas   richard ramos 09-1130

Nombre: TAD COLA

Invariante: n/a

Operaciones:

crearCola()

o */ 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.*/

o Precondiciones: N=0

o Pos condiciones: cola vacia creada

Page 19: Listas, pilas y colas   richard ramos 09-1130

insertarCola(crearCola)

o */ mediante este método se insertan datos a la cola ya

creada. */

o Precondiciones: cola <> null

o Pos condiciones: datos insertados en cola, cola

insertada.

borrarCola()

o */con este método se elmina cierta cola de datos */

o Precondiciones: cola != 0

o Pos condiciones: cola eliminada