Por Maria Fuentes Mazutiel – Estudiante de la carrera de Ingeniería Informática

Al momento de programar, nos hacemos siempre esta pregunta: ¿una lista enlazada o un vector? En ese preciso instante, tenemos que tomar una gran decisión que nos ayudará a contener nuestros objetos y a crear el programa justamente como queremos. Primero, antes de tomar la gran decisión, debemos tener claros varios puntos, como ¿qué es un vector? y ¿qué es una lista enlazada?

Digamos que queremos almacenar un número, por ejemplo, un entero, pues creamos una variable tipo entero y listo, ya con eso se encuentra almacenado. Esto se repetiría en el caso de querer agregar más variables. ¿Pero qué pasa con esto? Si nosotros queremos tener todos nuestros números ordenados y almacenados en una única variable, no podría ser posible. He ahí cuando salen a ayudarnos los vectores y las listas enlazadas (Empieza a programar, 2014).

En los VECTORES, también llamados array, se pueden almacenar varios números u objetos, en general. La única particularidad es que son del mismo tipo. Para poder entender esto mejor, a continuación se explica con un dibujo:

 

Ilustrativamente así podemos imaginar cómo se ve un vector. Son espacios de almacenamientos que podemos ir llenando.

PUNTOS IMPORTANTES SOBRE LOS VECTORES
• Puedes indicarle al vector la longitud que quieras. En el ejemplo anterior, cuenta con 6 espacios en blanco, contando obviamente el espacio del 0.
• Si creas un vector únicamente de enteros entonces solo podrás introducir enteros.
• Puedes asignar qué meter en cada uno de los espacios del vector desde afuera.
• Todos los objetos son independientes y puedes acceder a ellos cuando quieras.

En las LISTAS ENLAZADAS, al igual que el vector, podemos guardar objetos que sean del mismo tipo, en una secuencia, por ejemplo, ¿dónde podemos introducir nuestro entero en el caso de una lista enlazada?, pues en un nodo. Lo particular de nuestros nodos es que tienes unos punteros que indican el siguiente nodo al cual el proceso va a seguir. Esto lo convierte en un conjunto de nodos que se apuntan entre sí.

PUNTOS IMPORTANTES DE LAS LISTAS ENLAZADAS
• El nodo más importante será el primero.
• Funciona como secuencia.
• Pueden tener una longitud variable, nada nos impide quitar o agregar variables.
• El último nodo tiene que apuntar a una lista vacía, nula, para culminar con el proceso.

En el momento de hacer una lista debemos tener claro que la parte más importante de ella es el primer nodo, como ya se había comentado, podemos llamarlo “cabeza” para esta explicación. La cabeza de esta lista es la que decide a dónde se va a dirigir en el siguiente movimiento, que podemos llamar la cola ya que es lo que sigue después de la cabeza.

Digamos que nosotros queremos acceder al segundo nodo. Para que eso sea posible tenemos que pasar por el primer nodo siempre, ya que él es el que nos da el acceso a los siguientes movimientos de la lista. Al terminar de pasar por todos los nodos indicados, terminaremos el recorrido en una lista vacía o nula que detendrá el proceso.

La forma más fácil de guardar elementos en una lista es usar dos estructuras. Por ejemplo, podemos crear un nodo principal, que sería la cabeza, y luego una lista que apunta al primer nodo; así se facilita la estructura de la lista. Para recorrer de manera más sencilla la lista se puede usar un bucle que recorre todos los elementos del primero al último (Makigas, 2015).

Ahora que ya conocemos sobre cada una de las dos funciones, tenemos que tomar esa gran decisión: ¿cómo o cuál vas a usar para tu programa para almacenar los objetos que necesites? Hay muchas ventajas y desventajas en cada una de ellas.

Los programas que contienen datos usan un sistema de almacenamiento en el cual se mantendrán los datos en orden, así la información podrá estar a salvo. Dicho esto, tenemos que tener claro cuáles son los objetivos de nuestro programa, qué objetos vamos a almacenar y cuáles de estos dos sistemas es el que necesitamos, para que así no solo nuestro programa sea un éxito, sino que también que podamos controlarlo como queramos o como se nos haga más cómodo de manejar. Entonces, la pregunta ahora es ¿cuál será mejor las listas enlazadas o los vectores?

 

MOXIE es el Canal de ULACIT (www.ulacit.ac.cr), producido por y para los estudiantes universitarios, en alianza con el medio periodístico independiente Delfino.cr, con el propósito de brindarles un espacio para generar y difundir sus ideas.  Se llama Moxie - que en inglés urbano significa tener la capacidad de enfrentar las dificultades con inteligencia, audacia y valentía - en honor a nuestros alumnos, cuyo “moxie” los caracteriza.

Referencias bibliofráficas:
• Empieza a programar. (31 de mayo de 2014). ¿Qué es un vector? [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=7BFICVA5F_s
• Makigas. (6 de octubre de 2015). Estructura de datos 2 Listas enlazadas: Teoría. [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=0NzAFk1CwaQ