Bueno en sentido general son estructura de datos, esencialmente serian una colección o secuencias de elementos colocados uno detrás del otro, tal como si se tratase de una fila.
¿Que diferencia hay entre las listas,tablas,vectores respecto a la lista enlazada?
Las listas, tablas, vectores tienen que ser definido antes de que el programa comienza a ejecutarse es decir el programador conoce la capacidad máxima de datos que contendrá el programa. Bueno pero en la mayoría de aplicaciones el programador no sabe el tamaño que llegara a tener, pues en este punto se vuelven útiles las listas enlazadas, pues no necesitamos saber numero de objetos que se crearan solos (no exactamente solos, nosotros haremos que se automatice).
Tipos de lista enlazadas:
- Lista simplemente enlazada: Cada nodo(elemento) contiene un único enlace que lo conecta al nodo siguiente o sucesor, las lista hará recorridos directos hacia delante. El nodo final cerra siempre nulo.
- Lista doblemente enlazada: Cada nodo contiene dos enlaces, uno hacia su nodo sucesor y otro hacia su nodo predecesor, se puede mover en ambas direcciones (claro no al mismo tiempo) hacia delante y hacia atrás, el nodo final siempre es nulo.
- Lista circular simplemente enlazada: Es exactamente igual a la listas simplemente enlazada con el único detalle que el nodo final apunta hacia el nodo inicial
- Lista circula doblemente enlazada: Lo repito de nuevo exactamente igual a la doblemente enlazada con la salvedad de nulo final apuntara al nodo inicial.
Bueno a todas estas ¿Como es un nodo? lo mejor sera verlo gráficamente: Bueno empecemos con la lista simplemente enlazada en su forma gráfica contiene un dato y un enlace llamado en otros lenguaje como punteros (en C++).
la siguiente representación es la de una lista doblemente enlazada, note que bidireccional, podemos ir hacia atrás y hacia delante, esta es la más utilizada.
¿Como represento el último nodo? Pues como se acordaran en Lista doblemente y simplemente enlazada tienen un nodo final es decir un tope, pues bien se puede representar de las siguientes 3 formas, el uso depende de los gustos o la facilidad para utilizarlo (noten que el ultimo dice null, lo coloque hacia por convenciones, pues en los libro que consulte siempre venían en ingles)
Bueno ahora solo lo vimos en forma gráfica, que según mi experiencia es la forma mas fácil de aprender, en la siguiente entrega veremos como implementarlo, osea programarlo en java.
No hay comentarios:
Publicar un comentario