You are on page 1of 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 homogénea y dinámica, 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 número de elementos: L1: gato, perro. L2: gato, canario, cerdo. *Cuando, aun teniendo el mismo número de elementos, estos son distintos: L1: gato, perro. L2: gato, cerdo. *Cuando, aun teniendo el mismo número de elementos y siendo estos los mismos, no están dispuestos en el mismo orden. L1: gato, perro. L2: perro, gato.

Clasificación de las Listas
Modo De Acceso.
Atendiendo a este, se dividen en densas y enlazadas. El modo de acceso es independiente de la implementación realizada. Listas densas Se caracterizan porque los elementos siguen una secuencia física. Sabemos cuales es el siguiente elemento porque para acceder a él hemos tenido que pasar por todos los anteriores. La localización 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 física secuencial luego se pueden implementar utilizando ficheros, ARRAYS y punteros. Listas enlazadas Son aquellas en las que cada elemento que los compone contiene la información necesaria para acceder al elemento siguiente. La localización de un elemento cualquiera será: Un elemento de la lista tendrá la dirección K si K es el primero y K es conocido (dirección de inicio). Estará en la dir. J si J está contenida en el elemento anterior.

. El hecho de utilizar un vector para almacenar los elementos. *Pilas. luego el único elemento accesible de la pila es el que se encuentre en la cima. uno al nodo siguiente.En ellas el último elemento apunta al primero. pueden recorrerse en ambos sentidos a partir de cualquier nodo.Son aquellas listas en las que el último elemento consultado se sitúa al principio. *Implementación utilizando tablas Esta realización consiste en ir guardando consecutivamente los elementos de la pila en un vector de tamaño fijo. puede conducir a la situación en que la pila esté llena. Un índice marcará la posición del último elemento que se ha añadido a la pila. Otros Tipos De Listas *Listas reorganizables. siempre es posible alcanzar cualquier nodo de la lista. las inserciones en la estructura se realizarán en la posición inmediatamente siguiente a la posición marcada como cima. pasando a ser esta nueva posición ocupada la nueva cima de la pila. surgen de forma natural las operaciones que permiten añadir elementos y quitar elementos. Sobre una estructura de tipo pila.. hasta que se llega a uno de los extremos. y otro al anterior. Esto se producirá cuando el índice que señala la cima de la pila sea igual al tamaño del vector. *Listas circulares doblemente enlazadas: Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene dos enlaces. Los añadidos y extracciones de elementos de una estructura se realizan solo por un extremo. Las listas doblemente enlazadas no necesitan un nodo especial para acceder a ellas. *Listas ordinales Los elementos se van colocando en la lista a medida que llegan y se identifican por el orden de llegada. *Listas calificadas Los elementos se clasifican por una clave y pueden estar ordenados o no estarlo...Cada elemento tiene dos punteros. uno de los cuales apunta al elemento siguiente y otro al anterior. es decir. Una pila es una lista ordinal en la que el modo de acceso a sus elementos es del tipo LIFO. Por tanto. mientras que en la segunda depende de la clave.Informacion de acceso. Esto exigirá que la manipulación sobre un elemento. necesite que el mismo ocupe la posición de cima.El acceso a un elemento es por su orden o posición relativa dentro de la lista. A un elemento se accede por la información contenida en un campo clave. Diferencias: En la primera clase importa en orden de llegada. esto es porque a partir de cualquier nodo. *Listas doblemente enlazadas. *Listas circulares. que no quepa ningún elemento más.

Retornar Un Puntero Al Primer Nodo Que Tenga Como Valor El Entero Recibido O NULL Si No Lo Encuentra.Mostrará Por Pantalla Todos Los Elementos Almacenados. Que Valor. Argumento Un Número Entero. En La Lista Para Almacenar El Dato . Recibe Como Argumento Un Número Entero. Insertar Implementada Recibe Como .Crea Un Nuevo Nodo Recibido elemento: Como Una Acción. 2. Recorrer: . Lista.Implementada Como Una Acción Puesto No Retorna Ningún Recibe Como Argumento La Cabeza De La . 3.Operaciones listas 1. Buscar un elemento: Implementada Como Una Función.

Listas Enlazadas .

pero no permiten un acceso aleatorio. del mismo significado) a otro dato del mismo tipo. En algún lenguaje de muy bajo nivel. Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares. o apunta al valor NULL si es el último nodo. y otro que apunta al nodo siguiente. usando una sola palabra para ambos enlaces. el primer y el último nodo están unidos juntos. Tipos de Listas Enlazadas [editar]Listas enlazadas lineales [editar]Listas simples enlazadas La lista enlazada básica es la lista enlazada simple la cual tiene un enlace por nodo. Listas Doblemente Enlazadas. Este tipo de listas es el más usado para dirigir buffers para “ingerir” datos. y para visitar todos los nodos de una lista a partir de uno dado. las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Cada nodo tiene dos enlaces: uno apunta al nodo anterior. Una lista enlazada circular que contiene tres valores enteros [editar]Listas enlazadas circulares simples . [editar]Listas enlazadas circulares En una lista enlazada circular. Las listas enlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto está previamente identificado o localizado). Esto se puede hacer tanto para listas enlazadas simples como para las doblemente enlazadas. [editar]Lista Doblemente Enlazada Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. aunque el uso de esta técnica no se suele utilizar. Existen diferentes tipos de listas enlazadas: Lista Enlazadas Simples. si es el último nodo. XOR-Linking ofrece una vía para implementar listas doblemente enlazadas. Desde otro punto de vista.Una lista enlazada es un tipo de dato autoreferenciado porque contienen un puntero o enlace (en inglés link. Para recorrer una lista enlazada circular podemos empezar por cualquier nodo y seguir la lista en cualquier dirección hasta que se regrese hasta el nodo original. o apunta al valor NULL si es el primer nodo. o al valor NULL o a la lista vacía. Este enlace apunta al siguiente nodo en la lista.

tales como pilas. un puntero de acceso externo puede establecer el nodo apuntado que está en la cabeza o al nodo cola. Aunque estructuralmente una lista circular doblemente enlazada no tiene ni principio ni fin. y también permite accesos al primer nodo 1 desde el puntero del último nodo. por ejemplo con árboles binarios de búsqueda equilibrados. las inserciones y eliminaciones pueden ser hechas desde cualquier punto con acceso a algún nodo cercano. Por esta razón. apunta al primero. He aquí una lista con algunas de las ventajas más comunes que implican las estructuras de tipo lista. Aplicaciones de las listas enlazadas Las listas enlazadas son usadas como módulos para otras muchas estructuras de datos. similar al de las listas enlazadas simples. . [editar]Ventajas Como muchas opciones en programación y desarrollo. y estas en el contexto de las llamadas listas asociativas. los nuevos nodos pueden ser solo eficientemente insertados después de uno que ya tengamos referenciado. cada nodo tiene dos enlaces. y ahora es una característica común en el estilo de programación funcional. Hay pocas ventajas en este uso de las listas enlazadas. Una estructura de lista enlazada puede trabajar bien en un caso pero causar problemas en otros. Como en una lista doblemente enlazada. a veces una lista enlazada es dinámicamente creada fuera de un subconjunto propio de nodos semejante a un árbol. similares a los de la lista doblemente enlazada. no existe un único método correcto para resolver un problema. colas y sus variaciones. El campo de datos de un nodo puede ser otra lista enlazada. podemos construir muchas estructuras de datos enlazadas con listas. y son usadas más eficientemente para recorrer ésta serie de datos. Como en una lista enlazada simple. es usual quedarse con una referencia solamente al último elemento en una lista enlazada circular simple. y así mantener el orden tan bien como en una lista doblemente enlazada. En general. donde las listas enlazadas son una estructura de datos primaria (aunque no la única). esta practica tiene su origen en el lenguaje de programación Lisp. teniendo una colección dinámica donde los elementos están siendo añadidos y eliminados frecuentemente e importa la localización de los nuevos elementos introducidos se incrementa el beneficio de las listas enlazadas. esto nos permite rápidas inserciones al principio. Sin embargo. Mediante este mecanismo. excepto que el enlace anterior del primer nodo apunta al último y el enlace siguiente del último nodo.Cada nodo tiene un enlace. [editar]Lista Enlazada Doblemente Circular En una lista enlazada doblemente circular. hay mejores formas de implementar éstas estructuras. excepto que el siguiente nodo del último apunta al primero. A veces. las listas enlazadas son usadas para implementar vectores asociativos.

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