Você está na página 1de 7

Listas

Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias. Es una estructura de datos homognea y dinmica, que va a estar formada por una secuencia de elementos, donde cada uno de ellos va seguido de otro o de ninguno. *dos listas pueden ser diferentes si: *No tienen el mismo nmero de elementos: L1: gato, perro. L2: gato, canario, cerdo. *Cuando, aun teniendo el mismo nmero de elementos, estos son distintos: L1: gato, perro. L2: gato, cerdo. *Cuando, aun teniendo el mismo nmero de elementos y siendo estos los mismos, no estn dispuestos en el mismo orden. L1: gato, perro. L2: perro, gato.

Clasificacin de las Listas


Modo De Acceso.
Atendiendo a este, se dividen en densas y enlazadas. El modo de acceso es independiente de la implementacin realizada. Listas densas Se caracterizan porque los elementos siguen una secuencia fsica. Sabemos cuales es el siguiente elemento porque para acceder a l hemos tenido que pasar por todos los anteriores. La localizacin de un elemento cualquiera ser: El primero si es el primer elemento de la lista. N-esimo si para llegar a el hemos pasado por N-1 elementos. Siguen una estructura fsica secuencial luego se pueden implementar utilizando ficheros, ARRAYS y punteros. Listas enlazadas Son aquellas en las que cada elemento que los compone contiene la informacin necesaria para acceder al elemento siguiente. La localizacin de un elemento cualquiera ser: Un elemento de la lista tendr la direccin K si K es el primero y K es conocido (direccin de inicio). Estar en la dir. J si J est contenida en el elemento anterior.

Informacion de acceso.
*Listas ordinales Los elementos se van colocando en la lista a medida que llegan y se identifican por el orden de llegada.El acceso a un elemento es por su orden o posicin relativa dentro de la lista. *Listas calificadas Los elementos se clasifican por una clave y pueden estar ordenados o no estarlo. A un elemento se accede por la informacin contenida en un campo clave. Diferencias: En la primera clase importa en orden de llegada, mientras que en la segunda depende de la clave. *Pilas. Una pila es una lista ordinal en la que el modo de acceso a sus elementos es del tipo LIFO. Los aadidos y extracciones de elementos de una estructura se realizan solo por un extremo, luego el nico elemento accesible de la pila es el que se encuentre en la cima. Esto exigir que la manipulacin sobre un elemento, necesite que el mismo ocupe la posicin de cima. Sobre una estructura de tipo pila, surgen de forma natural las operaciones que permiten aadir elementos y quitar elementos. *Implementacin utilizando tablas Esta realizacin consiste en ir guardando consecutivamente los elementos de la pila en un vector de tamao fijo. Un ndice marcar la posicin del ltimo elemento que se ha aadido a la pila. Por tanto, las inserciones en la estructura se realizarn en la posicin inmediatamente siguiente a la posicin marcada como cima, pasando a ser esta nueva posicin ocupada la nueva cima de la pila. El hecho de utilizar un vector para almacenar los elementos, puede conducir a la situacin en que la pila est llena, es decir, que no quepa ningn elemento ms. Esto se producir cuando el ndice que seala la cima de la pila sea igual al tamao del vector. Otros Tipos De Listas

*Listas reorganizables.- Son aquellas listas en las que el ltimo elemento consultado se sita al principio. *Listas circulares.- En ellas el ltimo elemento apunta al primero. *Listas doblemente enlazadas.- Cada elemento tiene dos punteros, uno de los cuales apunta al elemento siguiente y otro al anterior. *Listas circulares doblemente enlazadas: Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene dos enlaces, uno al nodo siguiente, y otro al anterior. Las listas doblemente enlazadas no necesitan un nodo especial para acceder a ellas, pueden recorrerse en ambos sentidos a partir de cualquier nodo, esto es porque a partir de cualquier nodo, siempre es posible alcanzar cualquier nodo de la lista, hasta que se llega a uno de los extremos.

Operaciones listas
1. Recorrer: - Implementada Como Una Accin Puesto No Retorna Ningn Recibe Como Argumento La Cabeza De La - Mostrar Por Pantalla Todos Los Elementos Almacenados. Que Valor. Lista.

2. Buscar un elemento: Implementada Como Una Funcin. Recibe Como Argumento Un Nmero Entero. Retornar Un Puntero Al Primer Nodo Que Tenga Como Valor El Entero Recibido O NULL Si No Lo Encuentra. 3. Insertar Implementada Recibe Como - Crea Un Nuevo Nodo Recibido elemento: Como Una Accin. Argumento Un Nmero Entero. En La Lista Para Almacenar El Dato

Listas Enlazadas

Una lista enlazada es un tipo de dato autoreferenciado porque contienen un puntero o enlace (en ingls link, del mismo significado) a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminacin de nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto est previamente identificado o localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: Lista Enlazadas Simples, Listas Doblemente Enlazadas, Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares.

Tipos de Listas Enlazadas


[editar]Listas

enlazadas lineales

[editar]Listas simples enlazadas La lista enlazada bsica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vaca, si es el ltimo nodo. [editar]Lista Doblemente Enlazada Un tipo de lista enlazada ms sofisticado es la lista doblemente enlazada o lista enlazadas de dos vas. Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo siguiente, o apunta al valor NULL si es el ltimo nodo. En algn lenguaje de muy bajo nivel, XOR-Linking ofrece una va para implementar listas doblemente enlazadas, usando una sola palabra para ambos enlaces, aunque el uso de esta tcnica no se suele utilizar. [editar]Listas

enlazadas circulares

En una lista enlazada circular, el primer y el ltimo nodo estn unidos juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente enlazadas. Para recorrer una lista enlazada circular podemos empezar por cualquier nodo y seguir la lista en cualquier direccin hasta que se regrese hasta el nodo original. Desde otro punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este tipo de listas es el ms usado para dirigir buffers para ingerir datos, y para visitar todos los nodos de una lista a partir de uno dado.

Una lista enlazada circular que contiene tres valores enteros

[editar]Listas enlazadas circulares simples

Cada nodo tiene un enlace, similar al de las listas enlazadas simples, excepto que el siguiente nodo del ltimo apunta al primero. Como en una lista enlazada simple, los nuevos nodos pueden ser solo eficientemente insertados despus de uno que ya tengamos referenciado. Por esta razn, es usual quedarse con una referencia solamente al ltimo elemento en una lista enlazada circular simple, esto nos permite rpidas inserciones al principio, y tambin permite accesos al primer nodo 1 desde el puntero del ltimo nodo. [editar]Lista Enlazada Doblemente Circular En una lista enlazada doblemente circular, cada nodo tiene dos enlaces, similares a los de la lista doblemente enlazada, excepto que el enlace anterior del primer nodo apunta al ltimo y el enlace siguiente del ltimo nodo, apunta al primero. Como en una lista doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde cualquier punto con acceso a algn nodo cercano. Aunque estructuralmente una lista circular doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede establecer el nodo apuntado que est en la cabeza o al nodo cola, y as mantener el orden tan bien como en una lista doblemente enlazada.

Aplicaciones de las listas enlazadas


Las listas enlazadas son usadas como mdulos para otras muchas estructuras de datos, tales como pilas, colas y sus variaciones. El campo de datos de un nodo puede ser otra lista enlazada. Mediante este mecanismo, podemos construir muchas estructuras de datos enlazadas con listas; esta practica tiene su origen en el lenguaje de programacin Lisp, donde las listas enlazadas son una estructura de datos primaria (aunque no la nica), y ahora es una caracterstica comn en el estilo de programacin funcional. A veces, las listas enlazadas son usadas para implementar vectores asociativos, y estas en el contexto de las llamadas listas asociativas. Hay pocas ventajas en este uso de las listas enlazadas; hay mejores formas de implementar stas estructuras, por ejemplo con rboles binarios de bsqueda equilibrados. Sin embargo, a veces una lista enlazada es dinmicamente creada fuera de un subconjunto propio de nodos semejante a un rbol, y son usadas ms eficientemente para recorrer sta serie de datos. [editar]Ventajas Como muchas opciones en programacin y desarrollo, no existe un nico mtodo correcto para resolver un problema. Una estructura de lista enlazada puede trabajar bien en un caso pero causar problemas en otros. He aqu una lista con algunas de las ventajas ms comunes que implican las estructuras de tipo lista. En general, teniendo una coleccin dinmica donde los elementos estn siendo aadidos y eliminados frecuentemente e importa la localizacin de los nuevos elementos introducidos se incrementa el beneficio de las listas enlazadas.

http://www.slideshare.net/los4estatidinamicos/estructura-de-datos-lineales-y-no-lineales http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica) http://www.monografias.com/trabajos10/esda/esda.shtml

Você também pode gostar