¿Cuál es la aplicación de la vida real de las estructuras de datos de árbol?

  • Árbol de búsqueda binaria: se utiliza en muchas aplicaciones de búsqueda en las que los datos entran y salen constantemente, como el mapa y los objetos establecidos en las bibliotecas de muchos idiomas.
  • Partición de espacio binario: se utiliza en casi todos los videojuegos en 3D para determinar qué objetos deben renderizarse.
  • Pruebas binarias: se utilizan en casi todos los enrutadores de gran ancho de banda para almacenar tablas de enrutadores.
  • Hash Trees: se utiliza en programas p2p y firmas de imágenes especializadas en las que se debe verificar un hash, pero el archivo completo no está disponible.
  • Montones: se utilizan para implementar colas de prioridad eficientes, que a su vez se utilizan para programar procesos en muchos sistemas operativos, calidad de servicio en enrutadores y A * (algoritmo de búsqueda de ruta utilizado en aplicaciones de IA, incluida la robótica y los videojuegos) . También se utiliza en heap-sort.
  • Huffman Coding Tree (Chip Uni): utilizado en algoritmos de compresión, como los utilizados por los formatos de archivo .jpeg y .mp3.
  • Árboles GGM: se utilizan en aplicaciones criptográficas para generar un árbol de números pseudoaleatorios.
  • Árbol de sintaxis: construido por compiladores y (implícitamente) calculadoras para analizar expresiones.
  • Treap: estructura de datos aleatorios utilizada en redes inalámbricas y asignación de memoria.
  • T-tree: aunque la mayoría de las bases de datos utilizan algún tipo de B-tree para almacenar datos en el disco, las bases de datos que mantienen todos (la mayoría) de sus datos en la memoria a menudo usan T-trees para hacerlo.

    BTree: utilizamos BTree para indexar grandes registros en la base de datos para mejorar la búsqueda.

    consulte ¿Cuáles son las aplicaciones de los árboles binarios?

Hay muchas aplicaciones de la vida real de los árboles, algunas de ellas son:

  1. Los juegos de ajedrez por computadora construyen un gran árbol (entrenamiento) que podan en tiempo de ejecución utilizando la heurística para alcanzar un movimiento óptimo.

2. PDF es un formato basado en árbol. Tiene un nodo raíz seguido de un nodo de catálogo (estos a menudo son los mismos) seguido de un nodo de páginas que tiene varios nodos de página secundarios. Los productores / consumidores a menudo usan una implementación de árbol equilibrado para almacenar un documento en la memoria.

3. Aunque la mayoría de las bases de datos usan algún tipo de árbol B para almacenar datos en el disco, las bases de datos que mantienen todos sus datos en la memoria a menudo usan árboles T para hacerlo.

4. Las redes sociales son la palabra de moda actual en la investigación de CS. No hace falta decir que las conexiones / relaciones se modelan de forma muy natural utilizando gráficos. A menudo, los árboles se utilizan para representar / identificar fenómenos más interesantes.

Carpetas en el sistema operativo:

en windows ve a la línea de comando y escribe tree. Puede ver la estructura de árbol de carpetas.

El sistema de archivos de Linux también es un árbol.

Modelo de objeto de documento HTML (DOM) :

Todo el texto html, los atributos se almacenan en un árbol llamado Modelo de objetos de documento (DOM).

Enrutamiento de red:

Árbol de sintaxis en el compilador:

En el compilador, cada expresión se convierte en formato de árbol de sintaxis.

Corrector automático y corrector ortográfico:

Siguiente movimiento en juegos:

En el juego de inteligencia artificial (el oponente es la CPU), los siguientes movimientos se almacenan utilizando la estructura de datos del árbol.

[fuente de la imagen: Google]

Su función de teléfono celular … donde su contacto aparece en la lista en el momento en que comienza a escribir su nombre [Autocompletar]. Estructura de datos TRIE, una variación de Tree.

Su sistema de archivos del disco duro: la unidad C tiene muchos forjadores … cada carpeta puede tener más carpetas … hasta el archivo … [Suponga que cada carpeta es un nodo no hoja y un archivo como los nodos hoja]. Estructura de datos GENERAL TREE.

Estructuras de organización de la empresa: un informe a B, B y C informe a D …

Buscando datos.

Realización de herencia en la mayoría de los lenguajes de programación. A hereda de B, B hereda de C, C hereda de D …

Algoritmos de enrutamiento donde se determina la siguiente ruta / ruta del paquete … sin fin :).

A diferencia de Array y Linked List, que son estructuras de datos lineales, el árbol es una estructura de datos jerárquica (o no lineal).

1) Una razón para usar árboles podría ser porque desea almacenar información que naturalmente forma una jerarquía. Por ejemplo, el sistema de archivos en una computadora.

2) Si organizamos las claves en forma de árbol (con algún orden, por ejemplo, BST), podemos buscar una clave determinada en un tiempo moderado (más rápido que la Lista vinculada y más lento que las matrices).

3) Podemos insertar / eliminar claves en un tiempo moderado (más rápido que las matrices y más lento que las listas enlazadas sin ordenar).

4) Para representar una red telefónica de la región de la ciudad.

5) Representar una imagen en forma de mapa de bits.

6) Implementar la función de deshacer en un editor de texto.

Java y C # están utilizando árboles de búsqueda binarios para implementar el conjunto y el mapa.

Los productores / consumidores a menudo usan una implementación de árbol equilibrado para almacenar un documento en la memoria.

Juegos de ajedrez informáticos.

Su sistema de archivos es una estructura de árbol.

Estructura organizativa de la empresa: divisiones, departamentos, etc.

Agregaré lo que vino encima de mi cabeza.

  1. Muchos C ++ STL (Biblioteca de plantillas estándar) utilizan datos de almacenamiento del árbol rojo-negro o del árbol AVL.
  2. Sistema de archivos: ya sea NTFS o EXT2, todos almacenan metadatos de archivos como árboles.

Si la vida real se interpreta como donde los humanos los usan y no como una distinción entre el uso práctico y el estudio académico, uno que viene a la mente y que aún no se ha mencionado es su uso en los mapas mentales.

Aquí hay una ilustración de un mapa mental.

árbol de familia

árbol de sintaxis

sistema de archivos en linux

DOM en html

modelos de redes

topología estructurada en árbol

Se utiliza en aplicaciones de diccionario, problemas de búsqueda de direcciones IP, etc.