2. *El uso de listas en Java es una forma útil de almacenar y
manipular grandes volúmenes de datos, tal como
haríamos en una matriz o arreglo, pero con una serie de
ventajas que hacen de este tipo de variables las
preferidas para el procesamiento de grandes cantidades
de información.
*Las listas en Java son variables que permiten almacenar
grandes cantidades de datos. Son similares a los Array o
a las Matrices.
3. 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.
4. Por lo general los elemntos de un arreglo están contiguos en
memoria.Esto permite un acceso inmediato .
Una lista enlazada con
varios nodos. Este
diagrama presenta
una lista de enlace
simple (cada nodo
contiene una
referencia al siguiente
nodo en la lista)
5. El último nodo de la lista no apunta a ningún a ninguno (null).
Se accede a la lista mediante el primer nodo o también llamado inicio de la lista.
No tiene acceso aleatorio es decir para acceder a un valor se debe recorrer toda la
lista.
6. Operaciones básicas:
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.
esVacia (): 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.
7. Como ejemplo pensemos que debemos
almacenar un menú de opciones en una lista,
la opción a seleccionar puede ser la siguiente o
la anterior, podemos desplazarnos en ambas
direcciones.
Representación gráfica de una lista
doblemente encadenada:
listas doblemente encadenadas
Listas Doblemente Enlazadas
A las listas vistas hasta el momento
podemos recorrerlas solamente en
una dirección (Listas simplemente
encadenadas). Hay problemas donde
se requiere recorrer la lista en ambas
direcciones, en estos casos el empleo
de listas doblemente encadenadas es
recomendable.
8. No existe ningún nodo que apunte a null.
La lista no tiene fin ya que al llegar al último nodo empieza de nuevo la lista.
Se accede a la lista mediante el primer nodo o también llamado inicio de la
lista.
Si no se tiene cuidado al manejar la lista circular se pueden crear bucles
infinitos.
No tiene acceso aleatorio es decir para acceder a un valor se debe recorrer
toda la lista