J'ai récemment découvert la structure des données du rosier, mais en partant d'une data
définition de Haskell et de la minuscule description de Wikipédia , j'ai du mal à comprendre quelles applications un rosier pourrait avoir.
Pour référence, la data
définition de Haskell :
data RoseTree a = RoseTree a [RoseTree a]
Pour ceux qui ne connaissent pas Haskell - il s'agit d'une définition de type de données récursive avec un type arbitraire a
, où le constructeur de type est fourni avec un littéral de type a
suivi d'une liste de type éventuellement vide RoseTree
sur le même type a
.
La façon dont je le vois:
Cette structure de données n'est pas ordonnée par défaut (bien que je suppose que la plupart des applications pratiques implémentent une certaine forme d'ordonnancement pour la recherche)
La structure de données n'applique à aucun moment un nombre fixe de nœuds par couche, à l'exception de la racine globale, qui doit avoir un seul nœud
Étant donné cette quantité minimale d'informations, j'ai du mal à déterminer quand on pourrait utiliser ce type d'arbre.
En plus de la question dans le titre, si la recherche est effectivement implémentée dans la plupart des applications d'un rosier, comment cela se fait-il?