Estructura de datos
VELASQUEZ CRUZ IGNACIO
DEFINICION
Las listas en Java son variables que permiten almacenar grandes
cantidades de datos. Son similares a los Array o a las Matrices. Sin
embargo, las nuevas tendencias en la programación van
orientadas hacia el uso de Listas para el manejo de grandes
volúmenes de datos.
CARACTERÍSTICAS.
 1- Las listas enlazadas permiten inserciones y eliminación de nodos en cualquier
punto de la lista en tiempo constante, pero no permiten un acceso aleatorio.
 2- Existen diferentes tipos de listas enlazadas: Listas enlazadas simples, listas
doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente
circulares.
 3- Pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y
Scheme tiene estructuras de datos ya construidas, junto con operaciones para
acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales
como C o C++ y Java, respectivamente, disponen de referencias para crear listas
enlazadas.
TERMINOLOGÍA.
TERMINOLOGÍA.
Listas enlazadas
Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la
que cada elemento se conecta al siguiente elemento por un “enlace” o “puntero”.
La idea básica consiste en construir una lista cuyos elementos llamados “nodos”
se componen de dos partes o “campos”: la primera parte o campo contiene la
información y es, por consiguiente, un valor de un tipo genérico (denominado
Dato, Tipo Elemento, Info., etc.) y la segunda parte o campo es un puntero
(denominado enlace o siguiente) que apunta al siguiente elemento de la lista.
TIPOS DE LISTAS
 Listas simples enlazadas:
 Es una lista enlazada de nodos, donde cada nodo tiene un único campo de enlace. Una variable de referencia
contiene una referencia al primer nodo, cada nodo (excepto el último) enlaza con el nodo siguiente, y el enlace
del último nodo contiene NULL para indicar el final de la lista. Aunque normalmente a la variable de referencia se
la suele llamar top, se le podría llamar como se desee.
 Listas doblemente enlazadas:
 Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. 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.
 Listas enlazadas circulares:
 En una lista enlazada circular, el primer y el último nodo están 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 dirección 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 más usado para dirigir buffers para “ingerir” datos, y para visitar todos los nodos de una lista a
partir de uno dado.
TIPOS DE LISTAS.
 Listas enlazadas simples circulares
 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 después de uno que ya tengamos referenciado.
Por esta razón, es usual quedarse con una referencia solamente al último elemento en una
lista enlazada circular simple, esto nos permite rápidas inserciones al principio, y también
permite accesos al primer nodo desde el puntero del último nodo.1
 Listas enlazadas doblemente circulares
 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 algún 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.
CONSTRUCCIÓN Y OPERACIÓN DE LISTASSintaxis
List<String> list = new ArrayList<String>();
list.add(“juan");
list.add(“pedro");
list.add(“jose");
Iterator iter = list.iterator();
while (iter.hasNext())
System.out.println(iter.next());
}
OPERACIONES.
agregar (valor): agrega el valor al final de la lista.
insertar (referencia, valor): inserta el valor después del valor de referencia
en la lista.
remover (referencia): elimina el nodo con el valor que coincida con la
referencia.
 editar (referencia): actualiza el valor de nodo con el valor que coincida con
la referencia.
es Vacía (): retorna true si la lista está vacía, false en caso contrario.
 buscar (valor): retorna la true si el elemento existe en la lista, false caso
contrario.
eliminar(): elimina la lista
listar (): imprime en pantalla los elementos de la lista.

Unidad iii Listas

  • 1.
  • 2.
    DEFINICION Las listas enJava son variables que permiten almacenar grandes cantidades de datos. Son similares a los Array o a las Matrices. Sin embargo, las nuevas tendencias en la programación van orientadas hacia el uso de Listas para el manejo de grandes volúmenes de datos.
  • 3.
    CARACTERÍSTICAS.  1- Laslistas enlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante, pero no permiten un acceso aleatorio.  2- Existen diferentes tipos de listas enlazadas: Listas enlazadas simples, listas doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente circulares.  3- Pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con operaciones para acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales como C o C++ y Java, respectivamente, disponen de referencias para crear listas enlazadas.
  • 4.
  • 5.
    TERMINOLOGÍA. Listas enlazadas Es unacolección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “puntero”. La idea básica consiste en construir una lista cuyos elementos llamados “nodos” se componen de dos partes o “campos”: la primera parte o campo contiene la información y es, por consiguiente, un valor de un tipo genérico (denominado Dato, Tipo Elemento, Info., etc.) y la segunda parte o campo es un puntero (denominado enlace o siguiente) que apunta al siguiente elemento de la lista.
  • 6.
    TIPOS DE LISTAS Listas simples enlazadas:  Es una lista enlazada de nodos, donde cada nodo tiene un único campo de enlace. Una variable de referencia contiene una referencia al primer nodo, cada nodo (excepto el último) enlaza con el nodo siguiente, y el enlace del último nodo contiene NULL para indicar el final de la lista. Aunque normalmente a la variable de referencia se la suele llamar top, se le podría llamar como se desee.  Listas doblemente enlazadas:  Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. 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.  Listas enlazadas circulares:  En una lista enlazada circular, el primer y el último nodo están 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 dirección 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 más usado para dirigir buffers para “ingerir” datos, y para visitar todos los nodos de una lista a partir de uno dado.
  • 7.
    TIPOS DE LISTAS. Listas enlazadas simples circulares  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 después de uno que ya tengamos referenciado. Por esta razón, es usual quedarse con una referencia solamente al último elemento en una lista enlazada circular simple, esto nos permite rápidas inserciones al principio, y también permite accesos al primer nodo desde el puntero del último nodo.1  Listas enlazadas doblemente circulares  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 algún 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.
  • 8.
    CONSTRUCCIÓN Y OPERACIÓNDE LISTASSintaxis List<String> list = new ArrayList<String>(); list.add(“juan"); list.add(“pedro"); list.add(“jose"); Iterator iter = list.iterator(); while (iter.hasNext()) System.out.println(iter.next()); }
  • 9.
    OPERACIONES. agregar (valor): agregael valor al final de la lista. insertar (referencia, valor): inserta el valor después del valor de referencia en la lista. remover (referencia): elimina el nodo con el valor que coincida con la referencia.  editar (referencia): actualiza el valor de nodo con el valor que coincida con la referencia. es Vacía (): retorna true si la lista está vacía, false en caso contrario.  buscar (valor): retorna la true si el elemento existe en la lista, false caso contrario. eliminar(): elimina la lista listar (): imprime en pantalla los elementos de la lista.