Mejor respuesta
Existen diferentes tipos de estructuras de datos de árboles. Algunos de ellos son
- Árbol binario : esta es la estructura de árbol básica más básica. Donde cada nodo puede tener un máximo de dos hijos. Un árbol binario perfecto es un árbol binario en el que todos los nodos interiores tienen dos hijos y todos las hojas tienen la misma profundidad o el mismo nivel. Un árbol binario completo (a veces denominado árbol binario adecuado [15] o plano) es un árbol en el que cada nodo del árbol tiene 0 o 2 hijos. En un completo árbol binario, todos los niveles, excepto posiblemente el último, están completamente llenos, y todos los nodos del último nivel están lo más a la izquierda posible. En el infinito completo árbol binario, cada nodo tiene dos hijos.
- Árbol de búsqueda binaria: BST es un árbol binario con ciertas propiedades como, y el hijo izquierdo del nodo dado contiene un valor menor que igual al nodo dado y el hijo de la derecha contiene un nodo mayor que el nodo dado.
- Árbol AVL o árbol binario de altura equilibrada : Es una variación del árbol binario donde la diferencia de altura entre el subárbol izquierdo y derecho puede ser como máximo 1. Si en algún momento difieren en más de uno, se realiza el reequilibrio para restaurar esta propiedad. La búsqueda, inserción y eliminación toman O (log n) tiempo tanto en el promedio como en el peor de los casos, donde n es el número de nodos en el árbol antes de la operación.
- Árbol rojo-negro : Otra variante del árbol binario similar al árbol AVL es un árbol de búsqueda binario autoequilibrado. En este árbol, los nodos son de color rojo o negro.
- Árbol de expansión: Un árbol de expansión es un árbol de búsqueda binario autoajustable con la propiedad adicional a la que los elementos accedidos recientemente son de acceso rápido nuevamente. Todas las operaciones normales en un árbol de búsqueda binaria se combinan con una operación básica, llamada splaying. Al desplegar el árbol para un determinado elemento, se reorganiza el árbol para que el elemento se coloque en la raíz del árbol.
- N-ario árbol: En este árbol se elimina la limitación del árbol binario. Aquí un nodo puede tener como máximo n hijos. Al igual que el árbol binario, puede ser un árbol n-ario completo, completo o perfecto. N-ary se conoce en algún momento como bosque.
- Trie Structure : en informática, un trie, también llamado árbol digital y a veces radix árbol o árbol de prefijos (ya que se pueden buscar por prefijos), es una estructura de datos de árbol ordenada que se utiliza para almacenar un conjunto dinámico o matriz asociativa donde las claves suelen ser cadenas. Todos los descendientes de un nodo tienen un prefijo común de la cadena asociada con ese nodo, y la raíz está asociada con la cadena vacía.
- Sufijo árbol : Trie y el árbol de sufijos están estrechamente relacionados. un árbol de sufijos (también llamado árbol PAT o, en una forma anterior, árbol de posición) es un trie comprimido que contiene todos los sufijos del texto dado como sus claves y posiciones en el texto como sus valores. Los árboles de sufijos permiten implementaciones particularmente rápidas de muchas operaciones importantes de cadenas.
- Árbol de Huffman: El árbol de Huffman es un árbol binario ordenado por frecuencia que se usa ampliamente para comprimir datos. El árbol de Huffman está construido para asignar una palabra de código corta a un texto largo en función de su frecuencia de apariciones.
- Estructura de montón [Editar como se sugiere ]: La estructura de montón es otra estructura de árbol ampliamente utilizada con una propiedad de ordenación específica. Hay dos tipos de heap: Min heap y Max heap. En un montón mínimo, el padre de un nodo debe ser más pequeño que los valores de todos sus hijos. De manera similar, en max heap, el padre siempre tiene mayor valor en comparación con todos sus hijos. Una implementación común de heap es Binary heap donde cada padre puede tener como máximo dos hijos.
Otra estructura de árbol popular incluye, pero no exhaustivamente, B -Árbol, árbol B +, árbol R, árbol B contado, árbol KD (o BST de dimensión K), árbol de decisión (a variante del árbol n-ario), árbol Markel, árbol Fenwick (o árbol de índice binario), árbol de rango.
Respuesta h2 >
- Plantilla como código formando un árbol de dependencias.
Ahora tenga paciencia conmigo durante 5 minutos para explicar en detalle cómo usamos el árbol como estructura de datos para resolver nuestro complejo caso de uso.
Para explicar el escenario, tomemos un pequeño ejemplo de cómo obtener datos de una API mediante autenticación basada en token.
Entonces, si quieres lograr esta hazaña,
- primero obtiene el nombre de usuario, la contraseña y la información del inquilino y llama a la API para obtener el token.
- Luego, con el token obtenido, llame a la API real pasándola en los encabezados de la solicitud.
Este es un escenario muy simple, pero las cosas se vuelven bastante complejas cuando tienes que ejecutar una cadena de 10 API «S, cada una de las cuales depende una de la otra.
Aquí es donde se nos ocurrió este enfoque de árbol de dependencias
Primero tenemos que formar un plantilla como esta
Ahora, después de esto, formamos un árbol de dependencias como este
Cualquier cosa definida como $ {} significaba que depende de la salida de otra variable.
ResourceOps significa API que se ejecutarán
Así es como se crea el árbol de dependencias
- Evaluamos los parámetros que son independientes y adjuntarlos a la raíz.
- Luego llegamos a las operaciones de recursos y entendemos que depende de los valores adjuntos al nodo raíz. Entonces los separamos de ellos de la raíz y luego los adjuntamos al nuevo nodo.
- Lo mismo se hará con todas las operaciones de recursos y salida.
Una vez que creamos el árbol de dependencias, vamos al nodo hoja, ejecútalo, luego llega al padre con el resultado de ejecución del nodo hoja y luego es padre y es padre hasta que lleguemos al nodo superior.
Una vez que llegamos al nodo superior, obtenemos el resultado y regresamos como una respuesta http de éxito.
Si hay algún error en la ejecución, devolvemos la respuesta de error de una manera legible.
No creo que haya explicado un poco, pero solo quiero resaltar cómo Resolvimos un problema del mundo real con la estructura de datos de árbol para que las acciones dinámicas se ejecuten sin que un desarrollador escriba código.