Listas, pilas y colas

13
{ Listas, Pilas Y Colas Estructura de Datos Máximo De León 10-1122

Transcript of Listas, pilas y colas

Page 1: Listas, pilas y colas

{Listas, Pilas Y Colas

Estructura de Datos

Máximo De León 10-1122

Page 2: Listas, pilas y colas

Una lista es una estructura de datos homogénea y dinámica.

Las dos operaciones básicas, son las de almacenamiento y la derecuperación, que se llaman push (la de almacenamiento ) y pop (lade recuperación), para implementar una pila se necesitan las dosoperaciones mencionadas con anterioridad y una zona de memoriapara utilizarla como pila, se puede utilizar un array, o una zonaasignada mediante asignación dinámica de memoria. Al igual queen las colas, la función de recuperación elimina el valor de la lista, ysi este no se almacena en algún lugar, este se destruye.

Listas

Page 3: Listas, pilas y colas

Una pila es una estructura de datos a la cual se puedeacceder solo por un extremo de la misma. Lasoperaciones de inserción y extracción se realizan através del tope, por lo cual no se puede acceder acualquier elemento de la pila. Se la suele llamarestructura L.I.F.O. como acrónimo de las palabrasinglesas "last in, firstout" (último en entrar, primero ensalir). La pila se considera un grupo ordenado deelementos, teniendo en cuenta que el orden de losmismos depende del tiempo que lleven "dentro" de laestructura.

Definición

Page 4: Listas, pilas y colas

Colas

Una cola es una estructura de datos, caracterizada por seruna secuencia de elementos en la que la operación deinserción push se realiza por un extremo y la operación deextracción poppor el otro. También se le llama estructuraFIFO (del inglés First In First Out), debido a que el primerelemento en entrar será también el primero en salir. Las colasse utilizan en sistemas informáticos, transportes yoperaciones de investigación (entre otros), dónde los objetos,personas o eventos son tomados como datos que sealmacenan y se guardan mediante colas para su posteriorprocesamiento. Este tipo de estructura de datos abstracta seimplementa en lenguajes orientados a objetos medianteclases, en forma de listas enlazadas.

Page 5: Listas, pilas y colas

Operaciones básica de una lista

A todos los efectos, las listas circulares son como laslistas abiertas en cuanto a las operaciones que se puedenrealizar sobre ellas: Añadir o insertar elementos. Buscaro localizar elementos. Borrar elementos. Moverse através de la lista, siguiente. Cada una de éstasoperaciones podrá tener varios casos especiales, porejemplo, tendremos que tener en cuenta cuando seinserte un nodo en una lista vacía, o cuando se eliminael único nodo de una lista.

Page 6: Listas, pilas y colas

Tipo Abstracto de Datos (TAD)

Tenemos dos clases de TAD's:

Tipos predefinidos: definidos por el lenguaje.

Tipos definidos por el usuario: los define el programador.

TAD: Se puede pensar en un tipo abstracto de datos como enun modelo matemático con una serie de operaciones definidassobre ese modelo. Los TAD son generalizaciones de un tipo dedatos primitivo (enteros, reales, ...).

Page 7: Listas, pilas y colas

Ejemplo de TAD

Supongamos el TAD números naturales,

operaciones constructoras:

operación cero: ! natural

operación sucesor: natural ! natural

operación suma: natural x natural ! natural [producto cartesiano]

propiedades: " m, n " N

suma (0, n) = n

suma (succ (n), m) = succ (suma (n, m))

3 + 2 =

suma (succ (succ (succ (0))), succ (succ (0))) =

= succ (suma (succ (succ (0)), succ (succ (0)))) =

= succ (succ (suma (succ (0),succ (succ (0))))) =

= succ (succ (succ (suma (0, succ (succ (0)))))) =

= succ (succ (succ (succ (succ (0))))) = 5

Page 8: Listas, pilas y colas

Relacionar el concepto de ventana con el de Lista Unaventana es un área visual, normalmente de forma rectangular,que contiene algún tipo de interfaz de usuario, mostrando lasalida y permitiendo la entrada de datos para uno de variosprocesos que se ejecutan simultáneamente. Las ventanas seasocian a interfaces gráficas, donde pueden ser manipuladascon un puntero. En relación con las listas estas se puedenorganizar en manera ordenada y además las ventanas poseencaracterística homogéneas al momento de su desarrollo.

Page 9: Listas, pilas y colas

Describir las Implementaciones de Listas e1.- Vectores

En programación, una matriz o vector (Arrays, en Ingles ) esuna zona de almacenamiento contiguo, que contiene unaserie de elementos del mismo tipo. Utilizando unaestructura de datos estática arreglo para representar eimplementar el TDA LISTAS. Asumamos que losELEMENTOS que contiene la LISTA son representados porel tipo ENTERO. La cantidad de ELEMENTOS que puedecontener la LISTA tiene un máximo de n ELEMENTOS. Porlo que la representación formal de este tipo se define de lasiguiente manera: Tipo LISTA= arreglo [1..n] de ENTEROS;VarL : LISTA;

Page 10: Listas, pilas y colas

Describir las Implementaciones de Listas e2.- Listas Doblemente Enlazadas

Una de las ventaja que tienen es que pueden recorrerse en ambos sentidos, ya sea para efectuar una operación con cada elemento o para insertar/actualizar y borrar. Otra de las ventaja es que las búsquedas son algo más rápidas puesto que no hace falta hacer referencia al elemento anterior. Su inconveniente es que ocupan más memoria por nodo que una lista simple.

Page 11: Listas, pilas y colas

Mecanismos para implementar las pilas a través de Listas yVectores.

Según los lenguajes de Programación. Declaraciones de tipospara manejar pilas en C Los tipos que definen normalmente paramanejar pilas serán casi los mismos que para manejar listas, tansólo se debe cambiar algunos nombres: typedef struct _nodo { intdato; struct _nodo *siguiente; } tipo Nodo; typedef tipo Nodo*pNodo; typedef tipo Nodo *Pila;

Page 12: Listas, pilas y colas

Describir las implementaciones de COLAS Con Vectores Circulares. La cola circular propone tratar el arreglo como un circulo donde a Lengthse hace igual a a Size, el siguiente elemento es el de índice 0. Esto permite utilizar todos los espacios que quedan libres en el arreglo luego de realizar eliminaciones de nodos.

Page 13: Listas, pilas y colas

GRACIAS