
¿Qué es la estructura de datos?
En programación las estructuras de datos son los métodos utilizados para organizar los datos en una computadora de modo que se puedan utilizar de manera eficaz. El objetivo de las estructuras de datos es reducir la complejidad del espacio y el tiempo necesarios para las diferentes tareas. Hay muchas formas de organizar los datos en la memoria, podemos ver las estructuras de datos, en una matriz de lenguaje C.
Array es una colección de elementos de memoria en los que los datos se almacenan secuencialmente, es decir, uno tras otro. En otras palabras, podemos decir que array almacena los elementos de manera continua. Esta organización de datos se realiza con la ayuda de una serie de estructuras de datos. También hay otras formas de organizar los datos en la memoria.
Las estructuras de datos se dividen en dos tipos:
- Estructuras de datos lineales.
- Estructuras de datos jerárquicas.
Principales tipos de estructuras de datos lineales y características
Matrices(Arrays)
Las matrices o arrays en inglés, se utilizan para almacenar elementos homogéneos en ubicaciones contiguas, y el tamaño de la matriz se debe especificar antes de almacenar los datos.
Listas vinculadas(LinkedLists)
En esta estructura de datos Cada elemento de una lista enhebrada es un objeto en sí mismo, y cada elemento (o nodo) se compone de dos partes: datos y una referencia al nodo subsiguiente.
Hay varios tipos de listas vinculadas, que incluyen:
Listas de un solo hilo
En este tipo de lista de subprocesos, cada nodo almacena o apunta a la ubicación de su nodo sucesor, y el último nodo de la lista de subprocesos apunta a NULL.
Listas de doble subproceso
Cada nodo de este tipo de lista tiene dos banderas, una de las cuales apunta al siguiente nodo y la otra al anterior.
Listas de hilos circulares
Todos los nodos de este tipo de lista están conectados entre sí para formar un círculo y no hay NULL al final de la lista.
Pilas(Stack)
Stack o LIFO (Last In First Out) es una estructura de datos abstracta que es un conjunto de elementos sobre los que podemos realizar dos operaciones básicas: agregar el elemento push y eliminar el elemento pop. Estos dos procesos tienen lugar en pilas en un lado, que es la parte superior de la pila.
Colas(Queue)
Queue o FIFO (first in first out) es una estructura de datos abstracta que tiene la forma de un conjunto de elementos en los que podemos realizar dos operaciones básicas: agregar el elemento en queue o cola y eliminar el elemento de la cola.
Principales tipos de estructuras de datos jerárquicas y características
Árboles binarios(Binary Trees)
Los árboles binarios son estructuras de datos jerárquicas y un árbol binario, lo cual se puede decir literalmente que es un árbol de datos en el que cada nodo tiene un máximo de dos nodos secundarios, que se denominan hijo derecho y hijo izquierdo.
Árboles de búsqueda binaria(Binary Search Trees)
Un árbol de búsqueda binaria es un binary tree(árbol binario) que vimos anteriormente el cual tiene las siguientes propiedades adicionales:
- El subárbol izquierdo contiene nodos cuyas claves son menores que las del nodo desde el que se ramifica.
- El subárbol derecho contiene nodos cuyas claves son mayores que las claves del nodo desde el que se ramifica.
- Todos los árboles secundarios deben ser árboles de búsqueda binarios.
Árbol de prefijo(TrieNode)
El árbol de prefijos, también conocido como árbol digital o simplemente Trie, es una estructura de datos de recuperación de información efectiva. El árbol de prefijos ayuda a reducir la complejidad del tiempo de las búsquedas a límites razonables.
Pilas(Heaps)
El también conocido como Heap es un tipo especial de árbol de datos en el que este árbol de datos es un árbol de datos completo.
Función de corte(Hashing)
La función hash es una función que convierte una clave grande en un número entero con un valor más pequeño y se usa como la ubicación del índice en la tabla hash.
Grafo(graphs)
La estructura de datos del tipo grafo esta compuesta por los siguientes componentes:
- Un conjunto específico de vértices, también llamados nodos.
- Un conjunto definido de pares ordenados en la forma (u, v) llamados aristas.