Introduction :
Construction d'une structure arborescente à partir de un tableau de chaînes de chemin peut être difficile, mais avec les techniques appropriées, cela peut être réalisé efficacement.
Solution :
La solution fournie utilise une fonction récursive, AddToTree , qui prend en entrée une liste de nœuds représentant l'état actuel de l'arborescence et les segments de chemin restants à ajouter. L'algorithme procède comme suit :
Extrait de code :
<code class="go">func AddToTree(root []Node, names []string) []Node { if len(names) > 0 { var i int for i = 0; i < len(root); i++ { if root[i].Name == names[0] { //already in tree break } } if i == len(root) { root = append(root, Node{Name: names[0]}) } root[i].Children = AddToTree(root[i].Children, names[1:]) } return root }</code>
Avantages de la solution :
Exemple de sortie :
Le le code génère le résultat suivant :
[{ "name": "a", "children": [{ "name": "b", "children": [{ "name": "c" }, { "name": "g" }] }, { "name": "d" }] }]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!