Krypton Solid

La última tecnología en raciones de 5 minutos

¿Qué son las estructuras de datos? – Definición de Krypton Solid

Una estructura de datos es un formato especializado para organizar, procesar, recuperar y almacenar datos. Hay varios tipos básicos y avanzados de estructuras de datos, todos diseñados para organizar los datos para satisfacer un propósito específico. Las estructuras de datos facilitan a los usuarios el acceso y el trabajo con los datos que necesitan de forma adecuada. Más importante aún, las estructuras de datos enmarcan la organización de la información para que las máquinas y los humanos puedan comprenderla mejor.

En informática y programación informática, se puede seleccionar o diseñar una estructura de datos para almacenar datos con el fin de utilizarlos con varios algoritmos. En algunos casos, las operaciones básicas del algoritmo están estrechamente relacionadas con el diseño de la estructura de datos. Cada estructura de datos contiene información sobre los valores de los datos, las relaciones entre los datos y, en algunos casos, las funciones que se pueden aplicar a los datos.

Por ejemplo, en un lenguaje de programación orientado a objetos, la estructura de datos y sus métodos asociados se unen como parte de una definición de clase. En lenguajes no orientados a objetos, puede haber funciones definidas para trabajar con la estructura de datos, pero técnicamente no son parte de la estructura de datos.

¿Por qué son importantes las estructuras de datos?

Los tipos de datos de base típicos, como números enteros o valores de punto flotante, que están disponibles en la mayoría de los lenguajes de programación de computadoras, generalmente son insuficientes para capturar la intención lógica para el procesamiento y uso de datos. Sin embargo, las aplicaciones que ingieren, manipulan y producen información deben comprender cómo se deben organizar los datos para simplificar el procesamiento. Las estructuras de datos reúnen los elementos de datos de una manera lógica y facilitan el uso, la persistencia y el intercambio efectivo de datos. Proporcionan un modelo formal que describe la forma en que se organizan los elementos de datos.

Las estructuras de datos son los componentes básicos de aplicaciones más sofisticadas. Están diseñados componiendo elementos de datos en una unidad lógica que representa un tipo de datos abstracto que tiene relevancia para el algoritmo o la aplicación. Un ejemplo de un tipo de datos abstracto es un «nombre de cliente» que se compone de las cadenas de caracteres para «nombre», «segundo nombre» y «apellido».

No solo es importante utilizar estructuras de datos, sino que también es importante elegir la estructura de datos adecuada para cada tarea. La elección de una estructura de datos inadecuada podría resultar en tiempos de ejecución lentos o código que no responde. Los cinco factores a considerar al elegir una estructura de datos son los siguientes:

  1. ¿Qué tipo de información se almacenará?
  2. ¿Cómo se utilizará esa información?
  3. ¿Dónde deben persistir o conservarse los datos después de su creación?
  4. ¿Cuál es la mejor forma de organizar los datos?
  5. ¿Qué aspectos de la gestión de reserva de memoria y almacenamiento deben considerarse?

¿Cómo se utilizan las estructuras de datos?

En general, las estructuras de datos se utilizan para implementar las formas físicas de tipos de datos abstractos. Las estructuras de datos son una parte crucial del diseño de software eficiente. También desempeñan un papel fundamental en el diseño de algoritmos y en cómo se utilizan esos algoritmos en los programas informáticos.

Los primeros lenguajes de programación, como Fortran, C y C ++, permitían a los programadores definir sus propias estructuras de datos. Hoy en día, muchos lenguajes de programación incluyen una amplia colección de estructuras de datos integradas para organizar el código y la información. Por ejemplo, las listas y diccionarios de Python, y las matrices y objetos de JavaScript son estructuras de codificación comunes que se utilizan para almacenar y recuperar información.

Los ingenieros de software utilizan algoritmos que están estrechamente relacionados con las estructuras de datos, como listas, colas y asignaciones de un conjunto de valores a otro. Este enfoque se puede fusionar en una variedad de aplicaciones, incluida la gestión de colecciones de registros en una base de datos relacional y la creación de un índice de esos registros utilizando una estructura de datos llamada árbol binario.

Algunos ejemplos de cómo se utilizan las estructuras de datos son los siguientes:

  • Almacenamiento de datos. Las estructuras de datos se utilizan para una persistencia de datos eficiente, como especificar la colección de atributos y las estructuras correspondientes que se utilizan para almacenar registros en un sistema de gestión de bases de datos.
  • Gestión de recursos y servicios. Los recursos y servicios del sistema operativo (SO) central se habilitan mediante el uso de estructuras de datos, como listas vinculadas para la asignación de memoria, administración de directorios de archivos y árboles de estructura de archivos, así como colas de programación de procesos.
  • El intercambio de datos. Las estructuras de datos definen la organización de la información compartida entre aplicaciones, como los paquetes TCP / IP.
  • Ordenar y clasificar. Las estructuras de datos, como los árboles de búsqueda binarios, también conocidos como árboles binarios ordenados u ordenados, proporcionan métodos eficientes para clasificar objetos, como cadenas de caracteres utilizadas como etiquetas. Con estructuras de datos como colas de prioridad, los programadores pueden administrar elementos organizados de acuerdo con una prioridad específica.
  • Indexación. Incluso las estructuras de datos más sofisticadas, como los árboles B, se utilizan para indexar objetos, como los almacenados en una base de datos.
  • Buscando. Los índices creados mediante árboles de búsqueda binarios, árboles B o tablas hash aceleran la capacidad de encontrar un elemento buscado específico.
  • Escalabilidad. Las aplicaciones de big data utilizan estructuras de datos para asignar y administrar el almacenamiento de datos en ubicaciones de almacenamiento distribuido, lo que garantiza la escalabilidad y el rendimiento. Ciertos entornos de programación de big data, como Apache Spark, proporcionan estructuras de datos que reflejan la estructura subyacente de los registros de la base de datos para simplificar las consultas.

Características de las estructuras de datos.

Las estructuras de datos a menudo se clasifican por sus características. Las siguientes tres características son ejemplos:

  1. Lineal o no lineal. Esta característica describe si los elementos de datos están organizados en orden secuencial, como con una matriz, o en una secuencia desordenada, como con un gráfico.
  2. Homogéneo o heterogéneo. Esta característica describe si todos los elementos de datos de un repositorio determinado son del mismo tipo. Un ejemplo es una colección de elementos en una matriz, o de varios tipos, como un tipo de datos abstracto definido como una estructura en C o una especificación de clase en Java.
  3. Estático o dinámico. Esta característica describe cómo se compilan las estructuras de datos. Las estructuras de datos estáticos tienen tamaños, estructuras y ubicaciones de memoria fijos en el momento de la compilación. Las estructuras de datos dinámicas tienen tamaños, estructuras y ubicaciones de memoria que pueden reducirse o expandirse, según el uso.

Tipos de datos

Si las estructuras de datos son los bloques de construcción de algoritmos y programas de computadora, los tipos de datos primitivos, o base, son los bloques de construcción de las estructuras de datos. Los tipos de datos base típicos incluyen lo siguiente:

  • Booleano, que almacena valores lógicos que son verdaderos o falsos.
  • entero, que almacena un rango de números enteros matemáticos o números de conteo. Los números enteros de diferentes tamaños contienen un rango de valores diferente; por ejemplo, un entero de 8 bits con signo contiene valores de -128 a 127, y un entero largo de 32 bits sin signo contiene valores de 0 a 4.294.967.295.
  • Números de punto flotante, que almacenan una representación de fórmulas de números reales.
  • Números de coma fija, que se utilizan en algunos lenguajes de programación y contienen valores reales, pero se gestionan como dígitos a la izquierda y a la derecha del punto decimal.
  • Personaje, que utiliza símbolos de una asignación definida de valores enteros a símbolos.
  • Punteros que son valores de referencia que apuntan a otros valores.
  • Cuerda, que es una matriz de caracteres seguida de un código de detención, generalmente un valor «0», o se administra mediante un campo de longitud que es un valor entero.
Jerarquía de estructura de datos
La jerarquía de la estructura de datos muestra cómo se relacionan los tipos de datos y las estructuras de datos.

Tipos de estructuras de datos

El tipo de estructura de datos utilizado en una situación particular está determinado por el tipo de operaciones que se requerirán o los tipos de algoritmos que se aplicarán. Los diversos tipos de estructura de datos incluyen lo siguiente:

  • Formación. Una matriz almacena una colección de elementos en ubicaciones de memoria contiguas. Los elementos que son del mismo tipo se almacenan juntos para que la posición de cada elemento se pueda calcular o recuperar fácilmente mediante un índice. Las matrices pueden ser de longitud fija o flexible.
Diagrama de estructura de datos de matriz abstracta
Una matriz puede contener una colección de enteros, números de punto flotante, picaduras o incluso otras matrices.
  • Apilar. Una pila almacena una colección de elementos en el orden lineal en que se aplican las operaciones. Este orden puede ser el último en entrar, el primero en salir (LIFO) o el primero en entrar, primero en salir (FIFO).
  • Cola. Una cola almacena una colección de elementos como una pila; sin embargo, el orden de operación solo puede ser primero en entrar, primero en salir.
  • Lista enlazada. Una lista vinculada almacena una colección de elementos en un orden lineal. Cada elemento o nodo de una lista vinculada contiene un elemento de datos, así como una referencia o enlace al siguiente elemento de la lista.
Diagrama de estructura de datos de lista vinculada
Las estructuras de datos de listas vinculadas son un conjunto de nodos que contienen datos y la dirección o un puntero al siguiente nodo.
  • Árbol. Un árbol almacena una colección de elementos de forma abstracta y jerárquica. Cada nodo está asociado con un valor clave, con los nodos principales vinculados a los nodos secundarios, o subnodos. Hay un nodo raíz que es el antepasado de todos los nodos del árbol.
Diagrama de árbol de búsqueda binaria
Un árbol de búsqueda binaria es un conjunto de nodos donde cada uno tiene un valor y puede apuntar a dos nodos secundarios.
  • Montón. Un montón es una estructura de árbol en la que el valor clave asociado de cada nodo principal es mayor o igual que los valores clave de cualquiera de sus valores clave secundarios.
  • Grafico. Un gráfico almacena una colección de elementos de forma no lineal. Los gráficos están formados por un conjunto finito de nodos, también conocidos como vértices, y líneas que los conectan, también conocidos como bordes. Son útiles para representar sistemas del mundo real, como redes informáticas.
  • Trie. Un trie, también conocido como árbol de palabras clave, es una estructura de datos que almacena cadenas como elementos de datos que se pueden organizar en un gráfico visual.
  • Tabla de picadillo. Una tabla hash, también conocida como mapa hash, almacena una colección de elementos en una matriz asociativa que traza las claves de los valores. Una tabla hash usa una función hash para convertir un índice en una matriz de depósitos que contienen el elemento de datos deseado.
Diagrama de tabla hash
El hash es una técnica de estructura de datos en la que los valores clave se convierten en índices de una matriz donde se almacenan los datos.

Se consideran estructuras de datos complejas, ya que pueden almacenar grandes cantidades de datos interconectados.

Cómo elegir una estructura de datos

Al elegir una estructura de datos para un programa o aplicación, los desarrolladores deben considerar las respuestas a las siguientes tres preguntas:

  1. Operaciones apoyadas. ¿Qué funciones y operaciones necesita el programa?
  2. Complejidad computacional. ¿Qué nivel de rendimiento computacional es tolerable? Para la velocidad, una estructura de datos cuyas operaciones se ejecutan en el tiempo de forma lineal al número de elementos administrados, utilizando la notación Big O: O (n), será más rápida que una estructura de datos cuyas operaciones se ejecutan en el tiempo proporcional al cuadrado del número. de elementos gestionados – O (n ^ 2).
  3. Elegancia de programación. ¿La organización de la estructura de datos y su interfaz funcional son fáciles de usar?

Algunos ejemplos del mundo real incluyen:

  • Listas vinculadas son mejores si un programa administra una colección de elementos que no es necesario pedir, se requiere un tiempo constante para agregar o eliminar un elemento de la colección y un mayor tiempo de búsqueda está bien.
  • Pilas son mejores si el programa administra una colección que necesita respaldar un pedido LIFO.
  • Colas debe usarse si el programa está administrando una colección que necesita soportar una orden FIFO.
  • Árboles binarios son buenos para administrar una colección de elementos con una relación entre padres e hijos, como un árbol genealógico.
  • Árboles de búsqueda binaria son apropiados para administrar una colección ordenada donde el objetivo es optimizar el tiempo que lleva encontrar elementos específicos en la colección.
  • Gráficos funcionan mejor si la aplicación analiza la conectividad y las relaciones entre una colección de personas en una red social.

Deja un comentario

También te puede interesar...

Definición del pacto de recompra minorista

¿Qué es un acuerdo de recompra minorista? Un acuerdo de recompra minorista, también conocido como «acuerdo de repo minorista», es un producto financiero que sirve como una alternativa a las cuentas de ahorro tradicionales. Cuando

Wind River: el sabroso convite integrado de Linux

Intel acaba de adquirir un proveedor de sistemas integrados El río del viento por $ 884 millones. ¿Pero por qué? La respuesta puede estar en Linux y la virtualización de dispositivos. Para muchos, la adquisición

EE.UU .: Irán tiene la culpa de los ciberataques

Según un ex funcionario del gobierno estadounidense no identificado, las autoridades estadounidenses «creen firmemente» que Irán es el culpable de los recientes ataques cibernéticos contra compañías de gas y petróleo en el Golfo Pérsico. los

La transparencia es esencial para los sistemas RFID

Varias organizaciones de consumidores pidieron el miércoles a la Comisión Europea que garantice una mayor transparencia en los sistemas RFID para garantizar la protección de la privacidad del consumidor. Los comentarios se realizaron durante un

Comparando P / E por adelantado con P / E final

P/E por adelantado vs. P / E final: una descripción general Si se le pidiera a un inversionista que identificara la medida más popular del mercado de valores, además del precio, lo más probable es

VA retira los datos de propiedad de armas de la web

Si el ciudadano Joe quiere ver quién podría portar una pistola oculta registrada en Virginia, lamentará saber que la policía estatal está eliminando la base de datos de los titulares de permisos de visualización pública.

Cómo funciona una IRA después de la jubilación

Una cuenta de jubilación individual (IRA), como sugiere el nombre, es un lugar para almacenar esos huevos de oro para los años dorados. Pero aquí hay un hecho interesante: muchos trabajadores mayores y nuevos jubilados

Cómo archivar archivos en iPad

¿Necesita copiar urgentemente algunos archivos de su computadora para transferirlos a otra computadora, pero se queda sin espacio en la memoria USB? por casualidad tienes uno iPad ¿práctico? Si la respuesta es sí, ¡vamos a