Regularmente, cuando que pensamos en almacenar información en algún tipo de estructura, lo primero que se nos viene a la mente es sin duda el tema arreglos, estructuras que nos permiten almacenar N tipos de datos a partir de índices.
Si bien es, me atrevo a decir, quizás la estructura de datos más utilizada en nuestro día a día, dejame decirte que no siempre es la mejor opción para todos los escenarios. Es por ello que, en esta ocasión, me gustaría listarte 3 estructuras de datos que podemos utilizar como alternativa para solventar ciertos problemas.
Bien, una vez dicho todo esto, comencemos,
Pilas
De la primera estructura que me gustaría hablar ese de las pilas. Un estructura en la que los elementos de agregan y eliminan de la parte superior, del top de la pila. Este tipo de estructura usa el principio de El último en llegar es el primero en salir. Tal y como una pila de platos.
A diferencia de lo que uno puede llegar a pensar las pilas estan en todas partes, por ejemplo.
La mayoría de lenguajes de programación usan stacks para llevar el control sobre que función debe ejecutarse antes o después de otras. Recordemos que funciones pueden llamar a otras funciones, pues bien, para llevar es control se usal pilas.
De igual forma, si quiseramos evaluar una expresión matematica, usando precedencia de operadores, te dejo un vídeo donde te lo explicamos más en detalle, también podemos hacerlo con pilas.
Lo importante aquí es siempre conocer que el último en llegar es el último en salir.
Colas
Otra estructura que creo importante conocer son las colas. Este tipo de estrucutura tiene un principio complentamente contrario a de las pilas, las colas implementar el prinicipio el primero en llegar, es el primero en salir. Tal y como una cola de supermercado.
Las colas, aun que no lo creas, también están en todas partes. Un claro ejemplo es tu sistema operativo y como trabaja con tu procesador.
Los sistemas operatios utilzan colas para adminisrtar tareas y proceso. Por ejemplo, cuando varias aplicaciones están abiertas, el sistema operativo gestiona la ejecución de procesos en una cola, asignando tiempo de CPU a cada proceso en función de su prioridad.
Otro ejemplo, un poco más de nuestro día a día, es el envío de corres electronidos, esto podemos hacerlo mediante una colas, simplemente definimos la prioridad de cada uno de ellos y los enviamos.
Sets
Ya para finalizar hablemos acerca de las tablas Hash. .
Las tablas hash, también conocidas como hash tables o diccionarios, son una estructura de datos fundamental en programación que permite almacenar y recuperar datos de manera eficiente mediante una función hash. Las tablas hash se utilizan para implementar asociaciones clave-valor, donde una clave única se asocia a un valor correspondiente.
Un ejemplo de en donde podemos implementar una tablas Hash, es un colección donde deseemos garantizar que los valores sean unicos, Por ejemplo con los sets de Python.
Si un elemento que se quiere añadir a la colección se le implementa un hash y si este hash ya se encuentra en la colección simplemente no se almacena. Esto permite que las tablas hash tengan un rendimiendo de búsqueda, inserción y eliminarción de en promedio con la notación O1, sin duda la mejor notación posible que pudieramos encontrar en una estructura de datos.
Conclusión
Y bien, estas fueron 3 estructuras de datos que podemos utilizar en nuestro día a día. Recuerda que las estrucuras estan diseñadas para atacar problemas especificos, así que no encontraremos algo como la Mejor estructura, solo estrucutras que solventan problemas mejores que otras en ciertos escenarios.