Descripción de las estructuras de datos desarrolladas - adrian0398/Proyecto_Datos2 GitHub Wiki

LINKED LIST

Una lista enlazada, es una estructura lineal que almacena una colección de elementos generalmente llamados nodos, en donde cada nodo puede almacenar datos y ligues a otros nodos. De esta manera los nodos pueden localizarse en cualquier parte de la memoria, utilizando la referencia que lo relaciona con otro nodo dentro de la estructura. Las listas enlazadas son estructuras dinámicas lo cual es muy deseado en el proyecto al requerir una alta flexibilidad en la memoria al tener paginaciones. Se utilizan para almacenar datos que están cambiando constantemente, al tener una serie de paginaciones la lista va a cambiar las películas y va añadir y eliminar nodos (películas) constantemente para no saturar la memoria del usuario. Una ventaja sobre los array es que es dinámico, mientras que los array poseen un tamaño constante.

Las listas enlazadas permiten almacenar información en posiciones de memoria que no sean contiguas, los nodos poseen dos un campo para el nombre de la película, que es el identificador, el enlace que determina la posición del siguiente elemento y demás atributos de la película. Así el programa almacena en cada nodo la información que es importante de la película.

Como desventajas la búsqueda es simple por lo que buscar un elemento implica recorrer toda la lista desde el inicio, generando un tiempo de ejecución mayor al ser un algoritmo O(n) lo cual puede ser una forma de búsqueda no tan efectiva si el elemento a buscar no se encuentra en las primeras posiciones de la lista. Al requerir de punteros o referencias se necesita espacio en memoria para el almacenamiento de estas.

Para el proyecto se utilizan dos lista enlazadas la primera agarra todo el csv y lo almacena en una lista que son las películas y sus atributos, la segunda lista es la lista de películas que se mantienen en memoria con su respectivo poster obtenido del URL que es indispensable que sea memoria dinámica.

ARRAY

Los arrays, arreglos o vectores forman parte de la amplia variedad de estructuras de datos, siendo además una de las principales y más útiles estructuras que podremos tener. Los arrays son utilizados para almacenar múltiples valores en una única variable, permiten almacenar muchos valores en posiciones de memoria continuas, lo cual permite acceder a un valor u otro de manera rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de variable. Al crearlos se debe indicar la cantidad de espacios o datos que se desea tener, es decir que ya tienen un tamaño definido y por ende un espacio en la memoria. Para poder hallar un elemento en el arreglo no es necesario recorrerlo por completo, con la ayuda de los corchetes ([]) y el valor de la posición o indice en la que se encuentra el elemento se puede encontrar de una manera mas rápida y directa. Para utilizarlos se debe:

  • Declarar el array
  • Crear el array
  • Inicializar los elementos del array
  • Usar el array

En el proyecto la utilización de array se utiliza para el almacenamiento de char arrays del URL y almacenamiento de variables generales.