Introducción a las estructuras de datos

QUE SON LOS DATOS:

Los datos son la colección de diferentes números, símbolos y alfabetos para representar información.

QUE ES LA ESTRUCTURA DE DATOS:

Una estructura de datos es un grupo de elementos de datos que proporciona la forma más fácil de almacenar y realizar diferentes acciones en los datos de la computadora. Una estructura de datos es una forma particular de organizar los datos en una computadora para que pueda usarse de manera efectiva. La idea es reducir las complejidades de espacio y tiempo de las diferentes tareas. 

La elección de una buena estructura de datos hace posible realizar una variedad de operaciones críticas de manera efectiva. Una estructura de datos eficiente también utiliza un espacio de memoria y un tiempo de ejecución mínimos para procesar la estructura.

Una estructura de datos también ha definido una instancia de ADT.ADT significa TIPO DE DATOS ABSTRACTOS . Se define formalmente como un triplete.[ D,F,A]

  • D : Conjunto del dominio.
  • F : el conjunto de operaciones.
  • A : el conjunto de axiomas.

Tipo de estructura de datos:

  1.     Estructura de datos lineal
  2.     Estructura de datos no lineal.

  Estructura de datos lineal:

  •  Los elementos se organizan en una dimensión, también conocida como dimensión lineal.
  •  Ejemplo: listas, pila, cola, etc.

   Estructura de datos no lineal

  •   Los elementos se organizan en dimensiones uno-muchos, muchos-uno y muchos-muchos.
  •  Ejemplo: árbol, gráfico, tabla, etc.

Las estructuras de datos se utilizan en varios campos, tales como:

  • Sistema operativo
  • Gráficos
  • Diseño de computadora
  • string de bloques
  • Genética
  • Procesamiento de imágenes
  • Simulación, etc

DSA – Curso a su propio ritmo

Complete Interview Preparation - GFG

Avance en su carrera de ingeniería de software aprendiendo la estructura de datos y los algoritmos con el curso DSA más popular de GeeksforGeek, seleccionado por expertos de la industria para ayudarlo a prepararse para entrevistas técnicas de SDE con compañías de primer nivel como Amazon, Microsoft, Adobe y otros gigantes basados ​​en productos. Domine todos los temas clave de DSA como clasificación, DP, búsqueda, árboles y más. ¡Inscribirse ahora!

A continuación se muestra una descripción general de algunas estructuras de datos populares: 

1. Array : una array es una colección de elementos de datos almacenados en ubicaciones de memoria contiguas. La idea es almacenar varios artículos del mismo tipo juntos. Esto facilita el cálculo de la posición de cada elemento simplemente agregando un desplazamiento a un valor base, es decir, la ubicación de memoria del primer elemento de la array (generalmente indicado por el nombre de la array). 

2. Listas enlazadas : Al igual que las arrays, la Lista enlazada es una estructura de datos lineal. A diferencia de las arrays, los elementos de la lista enlazada no se almacenan en una ubicación contigua; los elementos se vinculan mediante punteros. 

linkedlist

3. Stack : Stack es una estructura de datos lineal que sigue un orden particular en el que se realizan las operaciones. El orden puede ser LIFO (Last In First Out) o FILO (First In Last Out). En la pila, todas las inserciones y eliminaciones están permitidas solo en un extremo de la lista.

Principalmente se realizan las siguientes tres operaciones básicas en la pila: 

  • Inicializar : hacer una pila vacía.
  • Empujar: agrega un elemento a la pila. Si la pila está llena, se dice que hay una condición de desbordamiento.
  • Pop: elimina un elemento de la pila. Los elementos se abren en el orden inverso al que se empujaron. Si la pila está vacía, se dice que es una condición de subdesbordamiento.
  • Peek o Top: Devuelve el elemento superior de la pila.
  • isEmpty: Devuelve verdadero si la pila está vacía, de lo contrario, devuelve falso.

4. Queue : Al igual que Stack, Queue es una estructura lineal que sigue un orden particular en el que se realizan las operaciones. El orden es Primero en entrar, primero en salir (FIFO). En la cola, los elementos se insertan en un extremo y se eliminan en el otro extremo. Un buen ejemplo de la cola es cualquier cola de consumidores de un recurso donde se atiende primero al consumidor que llegó primero. La diferencia entre pilas y colas está en la eliminación. En una pila, eliminamos el elemento agregado más recientemente; en una cola, eliminamos el elemento que se agregó menos recientemente. 

Principalmente, las siguientes cuatro operaciones básicas se realizan en la cola: 

  • Poner en cola: agrega un elemento a la cola. Si la cola está llena, se dice que es una condición de desbordamiento.
  • Dequeue: elimina un elemento de la cola. Los elementos se abren en el mismo orden en que se empujan. Si la cola está vacía, se dice que es una condición de subdesbordamiento.
  • Anverso: obtenga el elemento frontal de la cola.
  • Posterior: Obtener el último elemento de la cola.

5. Árbol binario : a diferencia de las arrays, las listas vinculadas, la pila y las colas, que son estructuras de datos lineales, los árboles son estructuras de datos jerárquicas. Un árbol binario es una estructura de datos de árbol en la que cada Node tiene como máximo dos hijos, a los que se hace referencia como el hijo izquierdo y el hijo derecho. Se implementa principalmente mediante enlaces. 

Un árbol binario está representado por un puntero al Node superior del árbol. Si el árbol está vacío, el valor de raíz es NULL. Un Node de árbol binario contiene las siguientes partes. 
 

1. Data
2. Pointer to left child
3. Pointer to the right child

6.   Árbol de búsqueda binaria : un árbol de búsqueda binaria es un árbol binario que sigue las propiedades adicionales: 
 

  • La parte izquierda del Node raíz contiene claves menores que la clave del Node raíz.
  • La parte derecha del Node raíz contiene claves mayores que la clave del Node raíz.
  • No hay clave duplicada presente en el árbol binario.

      Un árbol binario que tiene las siguientes propiedades se conoce como árbol de búsqueda binario (BST).

7. Montón : un montón es una estructura de datos basada en un árbol especial en la que el árbol es un árbol binario completo. En general, los montones pueden ser de dos tipos: 
 

  • Max-Heap: en un Max-Heap, la clave presente en el Node raíz debe ser la mayor entre las claves presentes en todos sus elementos secundarios. La misma propiedad debe ser verdadera recursivamente para todos los subárboles en ese árbol binario.
  • Min-Heap: en un Min-Heap, la clave presente en el Node raíz debe ser mínima entre las claves presentes en todos sus hijos. La misma propiedad debe ser verdadera recursivamente para todos los subárboles en ese árbol binario.

8. Estructura de datos Hashing : Hashing es una estructura de datos importante que está diseñada para usar una función especial llamada función Hash que se usa para mapear un valor dado con una clave particular para un acceso más rápido a los elementos. La eficiencia del mapeo depende de la eficiencia de la función hash utilizada. 

Deje que una función hash H (x) mapee el valor x en el índice x% 10 en una array. Por ejemplo, si la lista de valores es [11, 12, 13, 14, 15], se almacenará en las posiciones {1, 2, 3, 4, 5} en la array o tabla Hash respectivamente. 

9. Array : una array representa una colección de números dispuestos en un orden de filas y columnas. Es necesario encerrar los elementos de una array entre paréntesis o corchetes. 

A continuación se muestra una array con 9 elementos. 
 

10. Trie : Trie es una estructura de datos eficiente para la recuperación de información. Con Trie, las complejidades de búsqueda se pueden llevar a un límite óptimo (longitud de clave). Si almacenamos claves en el árbol de búsqueda binario, un BST bien equilibrado necesitará un tiempo proporcional a M * log N, donde M es la longitud máxima de la string y N es el número de claves en el árbol. Usando Trie, podemos buscar la clave en tiempo O(M). Sin embargo, la sanción está en los requisitos de almacenamiento de Trie. 

Publicación traducida automáticamente

Artículo escrito por MohitGoyal11 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *