Meilleure réponse
Il existe différents types de structures de données arborescentes. Certains dentre eux sont
- Arbre binaire : Cest le plus élémentaire de la structure arborescente. Où chaque nœud peut avoir au maximum deux enfants. Un arbre binaire parfait est un arbre binaire dans lequel tous les nœuds intérieurs ont deux enfants et tous les feuilles ont le même profondeur ou le même niveau. Un arbre binaire complet (parfois appelé arbre binaire propre [15] ou plan) est un arbre dans lequel chaque nœud de larbre a 0 ou 2 enfants. Dans un terminé larbre binaire chaque niveau, sauf peut-être le dernier, est complètement rempli, et tous les nœuds du dernier niveau sont aussi loin que possible. Dans le infini complet arbre binaire, chaque nœud a deux enfants.
- Arbre de recherche binaire: BST est un arbre binaire avec certaines propriétés tel que, et lenfant gauche du nœud donné contient une valeur inférieure à égale au nœud donné et lenfant de droite contient un nœud supérieur au nœud donné.
- Arbre AVL ou arbre binaire à hauteur équilibrée : Il sagit dune variante de larbre binaire où la différence de hauteur entre le sous-arbre gauche et droit peut être dau plus 1. Si à tout moment ils diffèrent de plus dun, le rééquilibrage est effectué pour restaurer cette propriété. La recherche, linsertion et la suppression prennent toutes un temps O (log n) dans les cas moyens et pires, où n est le nombre de nœuds dans larborescence avant lopération.
- Arbre rouge-noir : Une autre variante darbre binaire similaire à larbre AVL est un arbre de recherche binaire à équilibrage automatique. Dans cet arbre, les nœuds sont de couleur rouge ou noire.
- Arbre de répartition: Un arbre de répartition est un arbre de recherche binaire auto-ajustable avec le propriété supplémentaire à laquelle les éléments récemment accédés sont à nouveau rapidement accessibles. Toutes les opérations normales sur un arbre de recherche binaire sont combinées avec une opération de base, appelée évasement. Lécartement de larborescence pour un certain élément réorganise larborescence afin que lélément soit placé à la racine de larbre.
- Arbre N-aire: Dans cet arbre, la limitation de larbre binaire est supprimée. Ici, un nœud peut avoir au plus n enfants. Comme larbre binaire, il peut être un arbre n-aire complet, complet ou parfait. N-aire est un temps connu sous le nom de forêt.
- Structure Trie : En informatique, un trie, également appelé arbre numérique et parfois radix tree ou prefix tree (comme ils peuvent être recherchés par préfixes), est une structure de données arborescente ordonnée qui est utilisée pour stocker un ensemble dynamique ou un tableau associatif où les clés sont généralement des chaînes. Tous les descendants dun nœud ont un préfixe commun de la chaîne associée à ce nœud, et la racine est associée à la chaîne vide.
- Arborescence des suffixes : Trie et larbre des suffixes sont étroitement liés. un arbre de suffixes (également appelé arbre PAT ou, dans une forme antérieure, arbre de position) est un trie compressé contenant tous les suffixes du texte donné comme leurs clés et les positions dans le texte comme leurs valeurs. Les arborescences de suffixes permettent des implémentations particulièrement rapides de nombreuses opérations importantes sur les chaînes.
- Huffman Tree: Huffman tree est un arbre binaire trié par fréquence largement utilisé dans la compression Les données. Larbre de Huffman est construit pour allouer un mot de code court à un texte long en fonction de sa fréquence doccurrences.
- Structure du tas [Modifier comme suggéré ]: La structure de tas est une autre structure arborescente largement utilisée avec une propriété de tri spécifique. Il existe deux types de tas: tas min et tas max. Dans un tas min, le parent dun nœud doit être plus petit que les valeurs de tous ses enfants. De même, dans le tas max, le parent a toujours une valeur supérieure par rapport à tous ses enfants. Une implémentation courante du tas est le tas binaire où chaque parent peut avoir au plus deux enfants.
Une autre structure arborescente populaire inclut, mais pas de manière exhaustive, B -Arbre, B + – arbre, R-Tree, Counted-B Tree, KD tree (ou K- dimensions BST), Decision tree (a variante de larbre n-aire), Arbre de Markel, arbre Fenwick (ou arbre dindex binaire), arbre de plage.
Réponse
- Modèle comme code en formant une arborescence de dépendances.
Maintenant, laissez-moi pendant 5 minutes pour expliquer en détail comment nous avons utilisé larbre comme structure de données pour résoudre notre cas dutilisation complexe.
Pour expliquer le scénario, prenons un petit exemple d’obtention de données à partir d’une API via une authentification basée sur des jetons.
Donc, si vous voulez réaliser cet exploit,
- vous obtenez dabord le nom dutilisateur, le mot de passe et les informations du locataire et appelez lAPI pour récupérer le jeton.
- Ensuite, avec le jeton récupéré, appelez lAPI actial en le passant dans les en-têtes de la requête.
Maintenant, cest un scénario très simple, mais les choses deviennent assez complexes lorsque vous devez exécuter une chaîne de 10 API « S dépendantes les unes des autres.
Cest là que nous avons proposé cette approche darborescence de dépendances
Nous devons dabord former un modèle comme celui-ci
Maintenant, après cela, nous formons un arbre de dépendances comme celui-ci
Tout ce qui est défini comme $ {} signifiait que il « dépend de la sortie dune autre variable.
ResourceOps signifie que les API doivent être exécutées
Cest ainsi que larborescence de dépendances est créée
- Nous évaluons des paramètres qui sont indépendants et attachez-les à la racine.
- Nous arrivons alors aux opérations sur les ressources et comprenons que cela dépend des valeurs attachées au nœud racine. Nous les détacherons donc de la racine et les attacherons au nouveau nœud.
- La même chose sera faite pour toutes les opérations sur les ressources et sortie.
Une fois que nous avons créé larborescence de dépendances, nous allons au nœud feuille, exécutez-le puis venez au parent avec le résultat de lexécution du nœud feuille, puis cest le parent et cest le parent jusquà ce que nous atteignions le nœud supérieur.
Une fois que nous atteignons le nœud supérieur, nous obtenons le résultat et retournons en tant que réponse de succès http.
Sil y a une erreur lors de lexécution, nous renvoyons la réponse derreur de manière lisible.
Je ne pense pas en avoir expliqué un peu, mais je veux juste souligner comment nous avons résolu un problème réel avec la structure de données arborescente pour que les actions dynamiques soient exécutées sans quun développeur nécrive du code.