OOP 4 nwbs- Estructuras de datos
Las estructuras de datos, sin ser algo propiamente de la programación orientada a objetos, son un concepto fundamental en la ciencia de la computación que es imprescindible que conozcamos.
Estas estructuras proporcionan los medios para organizar y almacenar datos de manera eficiente en los programas informáticos pero también pueden surgir como características emergentes naturales de los sistemas, sin necesidad de un proceso de diseño a voluntad debido a las relaciones y patrones presentes en los datos o en el funcionamiento del sistema.
Las podemos clasificar en diferentes categorías según:
Pero la que más nos interesa y en la que vamos a hablar en esta ocasión es según la organización de los elementos y se divide en:
1. Estructuras de datos lineales
Los elementos están organizados de forma secuencial donde cada elemento tiene un sucesor y/o predecesor en la estructura.
Pilas (stacks): siguen una política LIFO (Last-In-First-Out), lo que significa que el último elemento agregado es el primero en ser eliminado. Las pilas se utilizan para realizar operaciones de apilamiento y desapilamiento. Un ejemplo de uso son los sistemas de deshacer/rehacer como se ve en los editores de texto o tambien para recorridos en profundidad (DFS) en algoritmos de búsqueda .
Colas (queues): siguen una política FIFO (First-In-First-Out), lo que significa que el primer elemento agregado es el primero en ser eliminado. Las colas se utilizan para realizar operaciones de encolamiento y desencolamiento. Un ejemplo de uso son los algoritmos de procesamiento de tareas en orden de llegada o también en algoritmos de búsqueda en amplitud (BFS).
Listas enlazadas: son estructuras dinámicas de datos donde los elementos están organizados en nodos, y cada nodo contiene una referencia al siguiente nodo. Esto permite la inserción y eliminación eficiente de elementos en cualquier posición de la lista. Esto hace que las listas enlazadas sean especialmente útiles cuando se realizan operaciones frecuentes de inserción y eliminación en la lista. Casos de uso son la gestión de grandes conjuntos de datos y listas de reproducción.
Recomendado por LinkedIn
2. Estructuras de datos no lineales
Los elementos tienen relaciones complejas entre sí.
Árboles: son estructuras jerárquicas en las que cada nodo puede tener varios nodos hijos. Los árboles se utilizan ampliamente para representar jerarquías. Además de para organización jerárquica, son casos de uso frecuentes las operaciones de búsqueda eficiente, compresión de datos y representación de expresiones matemáticas.
Grafos: son estructuras de datos que consisten en un conjunto de nodos (vértices) y un conjunto de aristas que conectan los nodos. Los grafos se utilizan para representar relaciones y conexiones entre elementos. Son muy utilizados por ejemplo para los motores de recomendación en comercio online y redes sociales.
A su vez existen muchos subtipos de árbol y de grafos. Por ahora mencionemos solos los siguientes en cuanto a árboles:
Y en cuanto a grafos:
Espero que les haya gustado el articulo. Nos leemos en el próximo!