logo

Una introducción a las estructuras de datos

Desde la invención de las computadoras, la gente ha estado usando el término ' Datos ' para referirse a la información informática, ya sea transmitida o almacenada. Sin embargo, también existen datos en los tipos de órdenes. Los datos pueden ser números o textos escritos en una hoja de papel, en forma de bits y bytes almacenados en la memoria de dispositivos electrónicos, o hechos almacenados en la mente de una persona. A medida que el mundo comenzó a modernizarse, estos datos se convirtieron en un aspecto importante de la vida cotidiana de todos y varias implementaciones les permitieron almacenarlos de manera diferente.

Datos es una colección de hechos y cifras o un conjunto de valores o valores de un formato específico que se refiere a un único conjunto de valores de elementos. Luego, los elementos de datos se clasifican en subelementos, que es el grupo de elementos que no se conocen como la forma primaria simple del elemento.

Consideremos un ejemplo en el que el nombre de un empleado se puede dividir en tres subelementos: nombre, segundo nombre y apellido. Sin embargo, una identificación asignada a un empleado generalmente se considerará un solo elemento.

Una introducción a las estructuras de datos

Figura 1: Representación de elementos de datos

En el ejemplo mencionado anteriormente, elementos como ID, edad, sexo, nombre, segundo nombre, apellido, calle, localidad, etc., son elementos de datos elementales. Por el contrario, el Nombre y la Dirección son elementos de datos de grupo.

¿Qué es la estructura de datos?

Estructura de datos es una rama de la Informática. El estudio de la estructura de datos nos permite comprender la organización de los datos y la gestión del flujo de datos para aumentar la eficiencia de cualquier proceso o programa. La estructura de datos es una forma particular de almacenar y organizar datos en la memoria de la computadora para que estos datos puedan recuperarse fácilmente y utilizarse de manera eficiente en el futuro cuando sea necesario. Los datos se pueden gestionar de varias formas, al igual que el modelo lógico o matemático para una organización específica de datos se conoce como estructura de datos.

El alcance de un modelo de datos particular depende de dos factores:

  1. Primero, debe cargarse lo suficiente en la estructura para reflejar la correlación definitiva de los datos con un objeto del mundo real.
  2. En segundo lugar, la formación debe ser tan sencilla que uno pueda adaptarse para procesar los datos de manera eficiente cuando sea necesario.

Algunos ejemplos de estructuras de datos son matrices, listas enlazadas, pilas, colas, árboles, etc. Las estructuras de datos se utilizan ampliamente en casi todos los aspectos de la informática, es decir, diseño de compiladores, sistemas operativos, gráficos, inteligencia artificial y muchos más.

Las estructuras de datos son la parte principal de muchos algoritmos informáticos, ya que permiten a los programadores gestionar los datos de forma eficaz. Desempeña un papel crucial en la mejora del rendimiento de un programa o software, ya que el objetivo principal del software es almacenar y recuperar los datos del usuario lo más rápido posible.

contiene pitón

Terminologías básicas relacionadas con estructuras de datos

Las estructuras de datos son los componentes básicos de cualquier software o programa. Seleccionar la estructura de datos adecuada para un programa es una tarea extremadamente desafiante para un programador.

Las siguientes son algunas terminologías fundamentales que se utilizan siempre que se trate de estructuras de datos:

    Datos:Podemos definir los datos como un valor elemental o una colección de valores. Por ejemplo, el nombre y el ID del empleado son los datos relacionados con el empleado.Elementos de datos:Una única unidad de valor se conoce como elemento de datos.Artículos de grupo:Los elementos de datos que tienen elementos de datos subordinados se conocen como elementos de grupo. Por ejemplo, el nombre de un empleado puede tener un nombre, un segundo nombre y un apellido.Artículos elementales:Los elementos de datos que no se pueden dividir en subelementos se conocen como elementos elementales. Por ejemplo, el ID de un empleado.Entidad y Atributo:Una clase de ciertos objetos está representada por una Entidad. Se compone de diferentes Atributos. Cada Atributo simboliza la propiedad específica de esa Entidad. Por ejemplo,
Atributos IDENTIFICACIÓN Nombre Género Título profesional
Valores 1234 Stacey M. Hill Femenino Desarrollador de software

Entidades con atributos similares forman una Conjunto de entidades . Cada atributo de un conjunto de entidades tiene un rango de valores, el conjunto de todos los valores posibles que podrían asignarse al atributo específico.

El término 'información' a veces se utiliza para datos con atributos dados de datos significativos o procesados.

    Campo:Una única unidad elemental de información que simboliza el atributo de una entidad se conoce como campo.Registro:Una colección de diferentes elementos de datos se conoce como Registro. Por ejemplo, si hablamos de la entidad del empleado, entonces su nombre, identificación, dirección y puesto de trabajo se pueden agrupar para formar el registro del empleado.Archivo:Una colección de diferentes Registros de un tipo de entidad se conoce como Archivo. Por ejemplo, si hay 100 empleados, habrá 25 registros en el archivo relacionado que contendrán datos sobre cada empleado.

Comprender la necesidad de estructuras de datos

A medida que las aplicaciones se vuelven más complejas y la cantidad de datos aumenta cada día, lo que puede generar problemas con la búsqueda de datos, la velocidad de procesamiento, el manejo de múltiples solicitudes y muchos más. Las estructuras de datos admiten diferentes métodos para organizar, administrar y almacenar datos de manera eficiente. Con la ayuda de estructuras de datos, podemos recorrer fácilmente los elementos de datos. Las estructuras de datos proporcionan eficiencia, reutilización y abstracción.

¿Por qué deberíamos aprender estructuras de datos?

  1. Las estructuras de datos y los algoritmos son dos de los aspectos clave de la informática.
  2. Las estructuras de datos nos permiten organizar y almacenar datos, mientras que los algoritmos nos permiten procesar esos datos de manera significativa.
  3. Aprender estructuras de datos y algoritmos nos ayudará a convertirnos en mejores programadores.
  4. Podremos escribir código que sea más efectivo y confiable.
  5. También podremos resolver problemas de forma más rápida y eficaz.

Comprender los objetivos de las estructuras de datos

Las Estructuras de Datos satisfacen dos objetivos complementarios:

    Exactitud:Las estructuras de datos están diseñadas para funcionar correctamente para todo tipo de entradas según el dominio de interés. En otras palabras, la corrección constituye el objetivo principal de la estructura de datos, que siempre depende de los problemas que la estructura de datos debe resolver.Eficiencia:Las estructuras de datos también requieren ser eficientes. Debería procesar los datos rápidamente sin utilizar muchos recursos informáticos como el espacio de memoria. En un estado de tiempo real, la eficiencia de una estructura de datos es un factor clave para determinar el éxito y el fracaso del proceso.

Comprender algunas características clave de las estructuras de datos

Algunas de las características importantes de las estructuras de datos son:

    Robustez:Generalmente, todos los programadores de computadoras tienen como objetivo producir software que produzca resultados correctos para cada entrada posible, junto con una ejecución eficiente en todas las plataformas de hardware. Este tipo de software robusto debe gestionar entradas válidas e inválidas.Adaptabilidad:La creación de aplicaciones de software como navegadores web, procesadores de texto y motores de búsqueda de Internet incluye enormes sistemas de software que requieren un funcionamiento o una ejecución correctos y eficientes durante muchos años. Además, el software evoluciona debido a las tecnologías emergentes o a las condiciones del mercado en constante cambio.Reutilizabilidad:Características como la reutilización y la adaptabilidad van de la mano. Se sabe que el programador necesita muchos recursos para construir cualquier software, lo que lo convierte en una empresa costosa. Sin embargo, si el software se desarrolla de forma reutilizable y adaptable, podrá aplicarse en la mayoría de las aplicaciones futuras. Por lo tanto, al ejecutar estructuras de datos de calidad, es posible crear software reutilizable, lo que parece ser rentable y ahorrar tiempo.

Clasificación de estructuras de datos

Una estructura de datos ofrece un conjunto estructurado de variables relacionadas entre sí de varias maneras. Constituye la base de una herramienta de programación que indica la relación entre los elementos de datos y permite a los programadores procesar los datos de manera eficiente.

Podemos clasificar las Estructuras de Datos en dos categorías:

  1. Estructura de datos primitiva
  2. Estructura de datos no primitiva

La siguiente figura muestra las diferentes clasificaciones de Estructuras de Datos.

Una introducción a las estructuras de datos

Figura 2: Clasificaciones de estructuras de datos

Estructuras de datos primitivas

    Estructuras de datos primitivasson las estructuras de datos que consisten en los números y los caracteres que vienen incorporado en programas.
  1. Estas estructuras de datos pueden manipularse u operarse directamente mediante instrucciones a nivel de máquina.
  2. Tipos de datos básicos como Entero, flotante, carácter , y Booleano pertenecen a las estructuras de datos primitivas.
  3. Estos tipos de datos también se denominan Tipos de datos simples , ya que contienen caracteres que no se pueden dividir más

Estructuras de datos no primitivas

    Estructuras de datos no primitivasson aquellas estructuras de datos derivadas de Estructuras de Datos Primitivas.
  1. Estas estructuras de datos no pueden manipularse ni operarse directamente mediante instrucciones a nivel de máquina.
  2. El objetivo de estas estructuras de datos es formar un conjunto de elementos de datos que sean homogéneo (mismo tipo de datos) o heterogéneo (diferentes tipos de datos).
  3. Según la estructura y disposición de los datos, podemos dividir estas estructuras de datos en dos subcategorías:
    1. Estructuras de datos lineales
    2. Estructuras de datos no lineales

Estructuras de datos lineales

Una estructura de datos que preserva una conexión lineal entre sus elementos de datos se conoce como estructura de datos lineal. La disposición de los datos se realiza de forma lineal, donde cada elemento consta de sucesores y predecesores, excepto el primer y el último elemento de datos. Sin embargo, esto no es necesariamente cierto en el caso de la memoria, ya que la disposición puede no ser secuencial.

Según la asignación de memoria, las estructuras de datos lineales se clasifican en dos tipos:

    Estructuras de datos estáticas:Las estructuras de datos que tienen un tamaño fijo se conocen como estructuras de datos estáticas. La memoria para estas estructuras de datos se asigna en el momento del compilador y el usuario no puede cambiar su tamaño después de la compilación; sin embargo, los datos almacenados en ellos pueden verse alterados.
    El Formación es el mejor ejemplo de estructura de datos estática, ya que tienen un tamaño fijo y sus datos se pueden modificar más adelante.Estructuras de datos dinámicas:Las estructuras de datos que tienen un tamaño dinámico se conocen como estructuras de datos dinámicas. La memoria de estas estructuras de datos se asigna en tiempo de ejecución y su tamaño varía durante el tiempo de ejecución del código. Además, el usuario puede cambiar el tamaño y los elementos de datos almacenados en estas estructuras de datos en el tiempo de ejecución del código.
    Listas enlazadas, pilas , y Cruz son ejemplos comunes de estructuras de datos dinámicas

Tipos de estructuras de datos lineales

La siguiente es la lista de estructuras de datos lineales que generalmente utilizamos:

1. matrices

Un Formación es una estructura de datos que se utiliza para recopilar múltiples elementos de datos del mismo tipo de datos en una variable. En lugar de almacenar múltiples valores del mismo tipo de datos en nombres de variables separados, podríamos almacenarlos todos juntos en una sola variable. Esta afirmación no implica que tendremos que unir todos los valores del mismo tipo de datos en cualquier programa en una matriz de ese tipo de datos. Pero a menudo habrá ocasiones en las que algunas variables específicas del mismo tipo de datos estén relacionadas entre sí de una manera apropiada para una matriz.

Una matriz es una lista de elementos donde cada elemento tiene un lugar único en la lista. Los elementos de datos de la matriz comparten el mismo nombre de variable; sin embargo, cada uno lleva un número de índice diferente llamado subíndice. Podemos acceder a cualquier elemento de datos de la lista con la ayuda de su ubicación en la lista. Por lo tanto, la característica clave que hay que comprender de las matrices es que los datos se almacenan en ubicaciones de memoria contiguas, lo que permite a los usuarios recorrer los elementos de datos de la matriz utilizando sus respectivos índices.

freddie mercurio nacido
Una introducción a las estructuras de datos

Figura 3. Una matriz

Los arrays se pueden clasificar en diferentes tipos:

    Matriz unidimensional:Una matriz con una sola fila de elementos de datos se conoce como matriz unidimensional. Se almacena en un lugar de almacenamiento ascendente.Matriz bidimensional:Una matriz que consta de varias filas y columnas de elementos de datos se denomina matriz bidimensional. También se le conoce como Matriz.Matriz multidimensional:Podemos definir Multidimensional Array como un Array de Arrays. Las matrices multidimensionales no están limitadas a dos índices o dos dimensiones, ya que pueden incluir tantos índices como sea necesario.

Algunas aplicaciones de matriz:

  1. Podemos almacenar una lista de elementos de datos que pertenecen al mismo tipo de datos.
  2. La matriz actúa como almacenamiento auxiliar para otras estructuras de datos.
  3. La matriz también ayuda a almacenar elementos de datos de un árbol binario de recuento fijo.
  4. Array también actúa como almacenamiento de matrices.

2. Listas enlazadas

A Lista enlazada es otro ejemplo de una estructura de datos lineal utilizada para almacenar una colección de elementos de datos de forma dinámica. Los elementos de datos en esta estructura de datos están representados por los nodos, conectados mediante enlaces o punteros. Cada nodo contiene dos campos, el campo de información consta de los datos reales y el campo de puntero consta de la dirección de los nodos siguientes en la lista. El puntero del último nodo de la lista enlazada consta de un puntero nulo, ya que no apunta a nada. A diferencia de las matrices, el usuario puede ajustar dinámicamente el tamaño de una lista vinculada según los requisitos.

Una introducción a las estructuras de datos

Figura 4. Una lista enlazada

Las Listas Enlazadas se pueden clasificar en diferentes tipos:

    Lista enlazada individualmente:Una lista enlazada individualmente es el tipo más común de lista enlazada. Cada nodo tiene datos y un campo de puntero que contiene una dirección al siguiente nodo.Lista doblemente enlazada:Una lista doblemente enlazada consta de un campo de información y dos campos de puntero. El campo de información contiene los datos. El primer campo de puntero contiene una dirección del nodo anterior, mientras que otro campo de puntero contiene una referencia al siguiente nodo. Por lo tanto, podemos ir en ambas direcciones (tanto hacia atrás como hacia adelante).Lista circular enlazada:La lista enlazada circular es similar a la lista enlazada individualmente. La única diferencia clave es que el último nodo contiene la dirección del primer nodo, formando un bucle circular en la Lista Enlazada Circular.

Algunas aplicaciones de listas enlazadas:

  1. Las Listas Enlazadas nos ayudan a implementar pilas, colas, árboles binarios y gráficos de tamaño predefinido.
  2. También podemos implementar la función del sistema operativo para la gestión dinámica de la memoria.
  3. Las listas enlazadas también permiten la implementación polinomial para operaciones matemáticas.
  4. Podemos utilizar la Lista Vinculada Circular para implementar sistemas operativos o funciones de aplicaciones que realizan tareas por turnos.
  5. La lista enlazada circular también es útil en una presentación de diapositivas donde un usuario debe volver a la primera diapositiva después de presentar la última.
  6. La lista doblemente enlazada se utiliza para implementar botones de avance y retroceso en un navegador para avanzar y retroceder en las páginas abiertas de un sitio web.

3. Pilas

A Pila es una estructura de datos lineal que sigue la LIFO Principio (Último en entrar, primero en salir) que permite operaciones como inserción y eliminación desde un extremo de la pila, es decir, Top. Las pilas se pueden implementar con la ayuda de memoria contigua, una matriz, y memoria no contigua, una lista vinculada. Ejemplos de Stacks en la vida real son montones de libros, una baraja de cartas, montones de dinero y muchos más.

Una introducción a las estructuras de datos

Figura 5. Un ejemplo de pila de la vida real

La figura anterior representa el ejemplo de la vida real de una Pila donde las operaciones se realizan desde un solo extremo, como la inserción y extracción de libros nuevos desde la parte superior de la Pila. Implica que la inserción y eliminación en la Pila solo se puede realizar desde la parte superior de la Pila. Solo podemos acceder a las cimas del Stack en un momento dado.

Las operaciones principales en la pila son las siguientes:

trimestre en el negocio
    Empujar:La operación para insertar un nuevo elemento en la pila se denomina operación Push.Estallido:La operación para eliminar o eliminar elementos de la pila se denomina operación Pop.
Una introducción a las estructuras de datos

Figura 6. Un montón

Algunas aplicaciones de las pilas:

  1. La pila se utiliza como estructura de almacenamiento temporal para operaciones recursivas.
  2. La pila también se utiliza como estructura de almacenamiento auxiliar para llamadas a funciones, operaciones anidadas y funciones diferidas/pospuestas.
  3. Podemos gestionar llamadas a funciones utilizando Stacks.
  4. Las pilas también se utilizan para evaluar expresiones aritméticas en diferentes lenguajes de programación.
  5. Las pilas también son útiles para convertir expresiones infijas en expresiones postfijas.
  6. Las pilas nos permiten comprobar la sintaxis de la expresión en el entorno de programación.
  7. Podemos unir paréntesis usando Stacks.
  8. Las pilas se pueden utilizar para invertir una cadena.
  9. Las pilas son útiles para resolver problemas basados ​​en el retroceso.
  10. Podemos usar Stacks en la búsqueda en profundidad en el recorrido de gráficos y árboles.
  11. Las pilas también se utilizan en funciones del sistema operativo.
  12. Las pilas también se utilizan en las funciones UNDO y REDO en una edición.

4. Colas

A Cola Es una estructura de datos lineal similar a una pila con algunas limitaciones en la inserción y eliminación de elementos. La inserción de un elemento en una Cola se realiza por un extremo y la eliminación se realiza por el otro extremo o el opuesto. Por lo tanto, podemos concluir que la estructura de datos de la cola sigue el principio FIFO (primero en entrar, primero en salir) para manipular los elementos de datos. La implementación de colas se puede realizar mediante matrices, listas vinculadas o pilas. Algunos ejemplos de colas de la vida real son una fila en el mostrador de boletos, una escalera mecánica, un lavado de autos y muchos más.

Una introducción a las estructuras de datos

Figura 7. Un ejemplo de cola de la vida real

La imagen de arriba es una ilustración de la vida real de un mostrador de entradas de cine que puede ayudarnos a comprender la cola donde siempre se atiende primero al cliente que llega primero. El cliente que llegue último, sin duda, será atendido el último. Ambos extremos de la cola están abiertos y pueden ejecutar diferentes operaciones. Otro ejemplo es una línea de patio de comidas donde el cliente se inserta desde la parte trasera mientras que el cliente se retira por la parte delantera después de brindar el servicio que solicitó.

Las siguientes son las operaciones principales de la cola:

np significa
    Poner en cola:La inserción o adición de algunos elementos de datos a la cola se llama Enqueue. La inserción del elemento se realiza siempre con ayuda del puntero trasero.Quitar de cola:Eliminar o eliminar elementos de datos de la cola se denomina sacar de la cola. La eliminación del elemento siempre se realiza con la ayuda del puntero frontal.
Una introducción a las estructuras de datos

Figura 8. A Queue

Algunas aplicaciones de colas:

  1. Las colas se utilizan generalmente en la operación de búsqueda amplia en Graphs.
  2. Las colas también se utilizan en las operaciones del programador de trabajos de los sistemas operativos, como una cola de búfer de teclado para almacenar las teclas presionadas por los usuarios y una cola de búfer de impresión para almacenar los documentos impresos por la impresora.
  3. Las colas son responsables de la programación de la CPU, la programación de trabajos y la programación del disco.
  4. Las colas prioritarias se utilizan en operaciones de descarga de archivos en un navegador.
  5. Las colas también se utilizan para transferir datos entre dispositivos periféricos y la CPU.
  6. Las colas también son responsables de manejar las interrupciones generadas por las Aplicaciones de Usuario para la CPU.

Estructuras de datos no lineales

Las estructuras de datos no lineales son estructuras de datos donde los elementos de datos no están organizados en orden secuencial. En este caso, la inserción y eliminación de datos no es factible de forma lineal. Existe una relación jerárquica entre los elementos de datos individuales.

Tipos de estructuras de datos no lineales

La siguiente es la lista de estructuras de datos no lineales que generalmente utilizamos:

1. árboles

Un árbol es una estructura de datos no lineal y una jerarquía que contiene una colección de nodos de modo que cada nodo del árbol almacena un valor y una lista de referencias a otros nodos (los 'hijos').

La estructura de datos de árbol es un método especializado para organizar y recopilar datos en la computadora para utilizarlos de manera más efectiva. Contiene un nodo central, nodos estructurales y subnodos conectados mediante bordes. También podemos decir que la estructura de datos del árbol consta de raíces, ramas y hojas conectadas.

Una introducción a las estructuras de datos

Figura 9. Un árbol

Los árboles se pueden clasificar en diferentes tipos:

    Árbol binario:Una estructura de datos de árbol en la que cada nodo principal puede tener como máximo dos hijos se denomina árbol binario.Árbol de búsqueda binaria:Un árbol de búsqueda binaria es una estructura de datos de árbol donde podemos mantener fácilmente una lista ordenada de números.Árbol AVL:Un árbol AVL es un árbol de búsqueda binaria autoequilibrado donde cada nodo mantiene información adicional conocida como factor de equilibrio cuyo valor es -1, 0 o +1.Árbol B:Un B-Tree es un tipo especial de árbol de búsqueda binaria autoequilibrado donde cada nodo consta de varias claves y puede tener más de dos hijos.

Algunas aplicaciones de los árboles:

  1. Los árboles implementan estructuras jerárquicas en sistemas informáticos como directorios y sistemas de archivos.
  2. Los árboles también se utilizan para implementar la estructura de navegación de un sitio web.
  3. Podemos generar código como el código de Huffman usando Trees.
  4. Los árboles también son útiles para la toma de decisiones en aplicaciones de juegos.
  5. Los árboles son responsables de implementar colas de prioridad para funciones de programación del sistema operativo basadas en prioridades.
  6. Los árboles también son responsables de analizar expresiones y declaraciones en los compiladores de diferentes lenguajes de programación.
  7. Podemos utilizar árboles para almacenar claves de datos para la indexación del sistema de gestión de bases de datos (DBMS).
  8. Spanning Trees nos permite encaminar decisiones en Redes de Computación y Comunicaciones.
  9. Los árboles también se utilizan en el algoritmo de búsqueda de rutas implementado en aplicaciones de inteligencia artificial (IA), robótica y videojuegos.

2. Gráficos

Un gráfico es otro ejemplo de una estructura de datos no lineal que comprende un número finito de nodos o vértices y los bordes que los conectan. Los gráficos se utilizan para abordar problemas del mundo real en los que denota el área problemática como una red, como redes sociales, redes de circuitos y redes telefónicas. Por ejemplo, los nodos o vértices de un Graph pueden representar a un solo usuario en una red telefónica, mientras que los bordes representan el enlace entre ellos a través del teléfono.

La estructura de datos del gráfico, G, se considera una estructura matemática compuesta por un conjunto de vértices, V y un conjunto de aristas, E, como se muestra a continuación:

GRAMO = (V,E)

Una introducción a las estructuras de datos

Figura 10. Un gráfico

La figura anterior representa un gráfico que tiene siete vértices A, B, C, D, E, F, G y diez aristas [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] y [E, G].

Dependiendo de la posición de los vértices y aristas, los Gráficos se pueden clasificar en diferentes tipos:

mapa iterativo java
    Gráfico nulo:Un gráfico con un conjunto vacío de aristas se denomina gráfico nulo.Gráfico trivial:Un gráfico que tiene un solo vértice se denomina gráfico trivial.Gráfico simple:Un gráfico sin bucles automáticos ni aristas múltiples se conoce como gráfico simple.Gráfico múltiple:Se dice que un gráfico es múltiple si consta de múltiples aristas pero no tiene bucles automáticos.Pseudo gráfico:Un gráfico con bucles automáticos y múltiples aristas se denomina pseudográfico.Gráfico no dirigido:Un gráfico que consta de aristas no dirigidas se conoce como gráfico no dirigido.Gráfico dirigido:Un gráfico que consta de aristas dirigidas entre los vértices se conoce como gráfico dirigido.Gráfico conectado:Un gráfico con al menos una única ruta entre cada par de vértices se denomina gráfico conectado.Gráfico desconectado:Un gráfico donde no existe ningún camino entre al menos un par de vértices se denomina gráfico desconectado.Gráfico regular:Un gráfico donde todos los vértices tienen el mismo grado se denomina gráfico regular.Gráfico completo:Un gráfico en el que todos los vértices tienen un borde entre cada par de vértices se conoce como gráfico completo.Gráfico de ciclo:Se dice que un gráfico es un ciclo si tiene al menos tres vértices y aristas que forman un ciclo.Gráfico cíclico:Se dice que un gráfico es cíclico si y sólo si existe al menos un ciclo.Gráfico acíclico:Un gráfico que tiene cero ciclos se denomina gráfico acíclico.Gráfico finito:Un gráfico con un número finito de vértices y aristas se conoce como gráfico finito.Gráfico infinito:Un gráfico con un número infinito de vértices y aristas se conoce como gráfico infinito.Gráfica bipartita:Un gráfico donde los vértices se pueden dividir en conjuntos independientes A y B, y todos los vértices del conjunto A solo deben estar conectados a los vértices presentes en el conjunto B con algunas aristas se denomina gráfico bipartito.Gráfico plano:Se dice que un gráfico es plano si podemos dibujarlo en un solo plano con dos aristas que se cruzan entre sí.Gráfico de Euler:Se dice que un grafo es de Euler si y sólo si todos los vértices son grados pares.Gráfico hamiltoniano:Un gráfico conectado que consta de un circuito hamiltoniano se conoce como gráfico hamiltoniano.

Algunas aplicaciones de gráficos:

  1. Los gráficos nos ayudan a representar rutas y redes en aplicaciones de transporte, viajes y comunicaciones.
  2. Los gráficos se utilizan para mostrar rutas en GPS.
  3. Los gráficos también nos ayudan a representar las interconexiones en redes sociales y otras aplicaciones basadas en redes.
  4. Los gráficos se utilizan en aplicaciones de mapeo.
  5. Los gráficos son responsables de la representación de las preferencias del usuario en aplicaciones de comercio electrónico.
  6. Los gráficos también se utilizan en las redes de servicios públicos para identificar los problemas que plantean las corporaciones locales o municipales.
  7. Los gráficos también ayudan a gestionar la utilización y disponibilidad de los recursos en una organización.
  8. Los gráficos también se utilizan para crear mapas de enlaces de documentos de los sitios web con el fin de mostrar la conectividad entre las páginas a través de hipervínculos.
  9. Los gráficos también se utilizan en movimientos robóticos y redes neuronales.

Operaciones básicas de estructuras de datos.

En la siguiente sección, discutiremos los diferentes tipos de operaciones que podemos realizar para manipular datos en cada estructura de datos:

    El recorrido:Atravesar una estructura de datos significa acceder a cada elemento de datos exactamente una vez para poder administrarlo. Por ejemplo, es necesario desplazarse mientras se imprimen los nombres de todos los empleados de un departamento.Buscar:La búsqueda es otra operación de estructura de datos que significa encontrar la ubicación de uno o más elementos de datos que cumplan ciertas restricciones. Dicho elemento de datos puede estar presente o no en el conjunto de elementos de datos dado. Por ejemplo, podemos utilizar la operación de búsqueda para encontrar los nombres de todos los empleados que tengan más de 5 años de experiencia.Inserción:Inserción significa insertar o agregar nuevos elementos de datos a la colección. Por ejemplo, podemos utilizar la operación de inserción para agregar los detalles de un nuevo empleado que la empresa ha contratado recientemente.Supresión:Eliminar significa eliminar o eliminar un elemento de datos específico de la lista dada de elementos de datos. Por ejemplo, podemos utilizar la operación de eliminación para eliminar el nombre de un empleado que dejó el trabajo.Clasificación:Ordenar significa organizar los elementos de datos en orden ascendente o descendente según el tipo de aplicación. Por ejemplo, podemos utilizar la operación de clasificación para organizar los nombres de los empleados de un departamento en orden alfabético o estimar los tres mejores del mes organizando el desempeño de los empleados en orden descendente y extrayendo los detalles de los tres mejores.Unir:Fusionar significa combinar elementos de datos de dos listas ordenadas para formar una lista única de elementos de datos ordenados.Crear:Crear es una operación que se utiliza para reservar memoria para los elementos de datos del programa. Podemos realizar esta operación usando una declaración de declaración. La creación de una estructura de datos puede tener lugar durante lo siguiente:
    1. Tiempo de compilación
    2. tiempo de ejecución
      Por ejemplo, el malloc() La función se utiliza en lenguaje C para crear una estructura de datos.
    Selección:Selección significa seleccionar un dato particular de los datos disponibles. Podemos seleccionar cualquier dato en particular especificando condiciones dentro del bucle.Actualizar:La operación Actualizar nos permite actualizar o modificar los datos en la estructura de datos. También podemos actualizar cualquier dato en particular especificando algunas condiciones dentro del bucle, como la operación de Selección.Terrible:La operación de división nos permite dividir los datos en varias subpartes, lo que disminuye el tiempo total de finalización del proceso.

Comprender el tipo de datos abstractos

Según el Instituto Nacional de Estándares y Tecnología (NIST) , una estructura de datos es una disposición de información, generalmente en la memoria, para una mejor eficiencia del algoritmo. Las estructuras de datos incluyen listas vinculadas, pilas, colas, árboles y diccionarios. También podrían ser una entidad teórica, como el nombre y la dirección de una persona.

De la definición mencionada anteriormente, podemos concluir que las operaciones en la estructura de datos incluyen:

  1. Un alto nivel de abstracciones como agregar o eliminar un elemento de una lista.
  2. Buscar y ordenar un elemento en una lista.
  3. Acceder al elemento de mayor prioridad en una lista.

Siempre que la estructura de datos realiza tales operaciones, se conoce como Tipo de datos abstractos (ADT) .

Podemos definirlo como un conjunto de elementos de datos junto con las operaciones sobre los datos. El término 'abstracto' se refiere al hecho de que los datos y las operaciones fundamentales definidas en ellos se estudian independientemente de su implementación. Incluye lo que podemos hacer con los datos, no cómo podemos hacerlo.

Una implementación de ADI contiene una estructura de almacenamiento para almacenar los elementos de datos y algoritmos para la operación fundamental. Todas las estructuras de datos, como una matriz, una lista vinculada, una cola, una pila, etc., son ejemplos de ADT.

Comprender las ventajas de utilizar ADT

En el mundo real, los programas evolucionan como consecuencia de nuevas restricciones o requisitos, por lo que modificar un programa generalmente requiere un cambio en una o varias estructuras de datos. Por ejemplo, supongamos que queremos insertar un nuevo campo en el registro de un empleado para realizar un seguimiento de más detalles sobre cada empleado. En ese caso, podemos mejorar la eficiencia del programa reemplazando un Array con una estructura Enlazada. En tal situación, no es adecuado reescribir todos los procedimientos que utilizan la estructura modificada. Por tanto, una mejor alternativa es separar una estructura de datos de su información de implementación. Este es el principio detrás del uso de tipos de datos abstractos (ADT).

Algunas aplicaciones de estructuras de datos

Las siguientes son algunas aplicaciones de las estructuras de datos:

  1. Las estructuras de datos ayudan en la organización de los datos en la memoria de una computadora.
  2. Las estructuras de datos también ayudan a representar la información en las bases de datos.
  3. Las estructuras de datos permiten la implementación de algoritmos para buscar a través de datos (por ejemplo, motor de búsqueda).
  4. Podemos utilizar las estructuras de datos para implementar algoritmos para manipular datos (por ejemplo, procesadores de texto).
  5. También podemos implementar algoritmos para analizar datos utilizando estructuras de datos (por ejemplo, mineros de datos).
  6. Las estructuras de datos admiten algoritmos para generar datos (por ejemplo, un generador de números aleatorios).
  7. Las estructuras de datos también admiten algoritmos para comprimir y descomprimir los datos (por ejemplo, una utilidad zip).
  8. También podemos utilizar estructuras de datos para implementar algoritmos para cifrar y descifrar los datos (por ejemplo, un sistema de seguridad).
  9. Con la ayuda de estructuras de datos, podemos crear software que pueda administrar archivos y directorios (por ejemplo, un administrador de archivos).
  10. También podemos desarrollar software que pueda representar gráficos utilizando estructuras de datos. (Por ejemplo, un navegador web o un software de renderizado 3D).

Aparte de estas, como se mencionó anteriormente, existen muchas otras aplicaciones de estructuras de datos que pueden ayudarnos a construir cualquier software que deseemos.