Listas dobles circulares.
Enviado por poland6525 • 9 de Abril de 2018 • 728 Palabras (3 Páginas) • 281 Visitas
...
Cambiamos head.sig de bottom hacíanodo n
De esta manera, queda insertado nodo n en el centro de la lista sin perder los nodos
adyacentes
Insertar al Final
Cambiamos nodo n.ant de nodo n hacía bottom
Cambiamos head.ant de bottom hacía nodo n
Cambiamos bottom.sig de head hacía nodo n
Cambiamos nodo n.sig de nodo n hacía head
Ahora bottom será el nuevo nodo
Recorrer ascendentemente
Tendremos una lista la cual queremos recorrer
Para recorrer necesitamos utilizar el apuntador de head, pero al moverlo causaremos
perdidas en la lista por lo que se crea una copia
Ahora la h se encuentra en el primer nodo al igual que head, y es necesario avanzar al
segundo
Avanzamos al segundo nodo y ahora al tercero
Llegamos al final de la lista, si avanzamos regresaremos al primer elemento de la lista por
lo que acabará el recorrido cuando esto pase
Recorrer descendentemente
Sacaremos la copia de head
Así h estará en el primer elemento, avanzaremos en sentido contrario
h pasó de nodo c a nodo b
De manera que el anterior de nodo b es a por lo que regresamos al inicio y finaliza el
Recorrido
Eliminar El primer elemento
Eliminaremos el elemento a de la lista
Recorremos head al segundo nodo
Modificamos bottom.sig a head
Ahora head.ant a bottom
De manera que a queda eliminado ya que no tiene ningún apuntador señalándolo
Eliminar al centro
Modifcamos los apuntadores de head para evitar el nodo
Y de esta manera queda eliminado sin apuntadores que lo señalen
Eliminar al final de la lista
Al igual que en los casos anteriores modificaremos los apuntadores para excluir el nodo
Y así sin apuntadores señalándolo, queda eliminado
Ventajas
No es preciso conocer la cantidad de elementos en tiempo de compilación. Ni las
inserciones ni las eliminaciones implican realizar corrimientos de los elementos de la
lista.
No existe ningún elemento que apunte a nulo.
Desventajas
No permite el acceso directo a un elemento arbitrario de la lista. Para acceder al n-eximo
elemento, debemos recorrer la lista, comenzando por el primer nodo, hasta llegar al
elemento deseado..
Aplicaciones
A través del uso de listas dobles podemos acceder a los datos recorriéndoles hacia delante
hasta el final o hacia atrás hacia el inicio.
Estas pueden ser usadas en aplicaciones como:
Reproductor
Galería de fotos (Carrusel)
...