Hoy vamos a hablar de las listas enlazadas,
psssssssst!: si vez códigos que necesitas y no quieres estar transcribiendo porque solo dejare imágenes, en la parte de abajo puedes encontrar el link para descargar todo
¿QUE ES UNA LISTA ENLAZADA?
Una lista enlazada es un tipo de estructura de datos ( o una estructura que almacena datos ) que consta de nodos ( se podría decir que es una colección de nodos ) y enlaces a otros nodos.
Dichos nodos pueden estar en cualquier parte de la memoria.
Una lista enlazada es una muy buena opción si deseas guardar varios valores y no sabes cuanto espacio pueda tomar a comparación de un array [Próximamente te dejare un link para que averigües que es un array ]
LISTAS ENLAZADAS VS. ARRAYS
- Es necesario saber el tamaño del array al momento de compilar el código. [ First Blood ]
- Al momento de reservar memoria para el array tiene que tomar memoria consecutiva o a la misma distancia en cambio con una lista enlazada gracias por el uso de los punteros podemos tomar memoria disponible en cualquier parte de la memoria. [ Este es el momento en donde las listas enlazadas ganan esta pelea esto es un Double kill]
AHORA EMPECEMOS….
¿QUE ES UN NODO Y COMO SE DECLARA ? ( C++ )
Si te das cuenta nombre a la clase INTNODE porque de la forma en que la declare solo funciona con variables enteras (int) , si se quisiera generalizar se podría poner un template.
Se declara una variable entera que la llamaremos info que almacenara todos los datos que queramos almacenar, y luego declaramos un puntero next del tipo IntNode ( si, es un puntero del mismo tipo que la clase porque el siguiente dato que quieras almacenar sera otro nodo ) [LOS DECLARE AL ULTIMO] .
Empezamos con la primera función sin parámetros IntNode de la cual posee el puntero next el cual tendrá el valor de cero osea que este puntero seria un puntero nulo o que apunta al vació o para ser más claros no apunta a nada todavía.
EL siguiente IntNode que posee parámetros es solo para guardar valores como vemos en el parámetro tenemos una variables entera i la cual guardara el valor de info que sera el valor que nosotros queramos guardar en el nodo del misma manera sucede con el puntero in.
¿QUE PUEDO CONSTRUIR CON ESTO?
Bueno ya tenemos el nodo que es lo básico para una estructura de datos, luego de esto podemos crear estructuras como:
- Lista enlazada Simple
- Lista doblemente enlazada
- Lista circular
- Lista circular doblemente enlazada
- etc etc etc.
En el siguiente post veremos como construir cada una o algo así
LINKS PARA DESCARGAR TODOS LOS CÓDIGOS QUE VISTE ( Made with love! )
- Nodo: http://adf.ly/1Q51tH
No hay comentarios:
Publicar un comentario