Heim >Backend-Entwicklung >Golang >Wie können Sie eine Liste von Pfadzeichenfolgen effizient in eine baumartige Struktur umwandeln?
Erstellen einer baumartigen Struktur aus Pfadzeichenfolgen
Das Konvertieren einer Reihe von Zeichenkettenpfaden in eine baumartige Struktur kann eine Herausforderung sein, insbesondere beim Umgang mit rekursiven Daten. Hier ist eine effiziente Lösung für das Problem:
Das angegebene Pfadarray besteht aus Zeichenfolgen, die den Pfad zu Knoten in einem Baum darstellen. Die gewünschte Ausgabe ist eine hierarchische Baumstruktur mit Knoten und ihren untergeordneten Knoten.
Erstens untersuchen wir den bereitgestellten Code:
<code class="go">func appendChild(root Node, children []string) Node { if len(children) == 1 { return Node{children[0], nil} } else { t := root t.Name=children[0] t.Children = append(t.Children, appendChild(root, children[1:])) return t } }</code>
Dieser Code versucht, den Baum rekursiv zu erstellen, sofern er welche hat Probleme:
Um diese Probleme zu beheben, finden Sie hier ein überarbeitetes Codebeispiel:
<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>
Dieser Code arbeitet mit einer Liste von Knoten. und nicht die untergeordneten Elemente eines einzelnen Knotens. Es prüft vor dem Einfügen, ob ein Knoten bereits vorhanden ist, und erstellt neue Knoten, anstatt den Eingabeknoten wiederzuverwenden. Darüber hinaus behandelt es den Fall, dass der angegebene Pfad nicht am selben Stammknoten beginnt, indem es bei Bedarf an die Liste der Stammknoten angehängt wird.
Beispielausgabe:
[{ "name": "a", "children": [{ "name": "b", "children": [{ "name": "c" }, { "name": "g" }] }, { "name": "d" }] }]
Dies wurde verbessert Die Lösung bietet eine effiziente und genaue Konvertierung von Pfadzeichenfolgen in eine hierarchische Baumstruktur.
Das obige ist der detaillierte Inhalt vonWie können Sie eine Liste von Pfadzeichenfolgen effizient in eine baumartige Struktur umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!