Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich ein Pfad-String-Array in eine baumartige Struktur umwandeln?

Wie kann ich ein Pfad-String-Array in eine baumartige Struktur umwandeln?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 04:42:29346Durchsuche

How can I convert a path string array into a tree-like structure?

Umwandeln eines Pfad-String-Arrays in eine baumartige Struktur

Einführung:

Konstruieren einer baumähnlichen Struktur aus Eine Reihe von Pfadzeichenfolgen kann eine Herausforderung sein, aber mit den entsprechenden Techniken kann dies effizient erreicht werden.

Lösung:

Die bereitgestellte Lösung verwendet eine rekursive Funktion, AddToTree , die als Eingabe eine Liste von Knoten verwendet, die den aktuellen Zustand des Baums und die verbleibenden hinzuzufügenden Pfadsegmente darstellen. Der Algorithmus geht wie folgt vor:

  1. Überprüfen Sie, ob das aktuelle Pfadsegment (erstes Element des Pfades) bereits als untergeordneter Knoten der aktuellen Wurzel existiert.
  2. Wenn nicht gefunden, erstellen Erstellen Sie einen neuen Knoten mit dem aktuellen Pfadsegment als Namen und fügen Sie ihn als untergeordnetes Element des aktuellen Stammknotens hinzu.
  3. Rufen Sie AddToTree rekursiv für die verbleibenden Pfadsegmente auf und verwenden Sie dabei den neu erstellten untergeordneten Knoten als neuen Stammknoten.

Code-Snippet:

<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>

Vorteile der Lösung:

  • Wiederverwendbarkeit: Die Funktion kann wiederholt angewendet werden, um dem Baum mehrere Pfadzeichenfolgen hinzuzufügen.
  • Integrität: Sie vermeidet doppelte Knoten im Baum, indem vor dem Hinzufügen nach vorhandenen Knoten gesucht wird.
  • Effizienz: Rekursion stellt sicher, dass die Funktion nur auf notwendigen Knoten im Baum ausgeführt wird.

Beispielausgabe:

Die Code generiert die folgende Ausgabe:

[{
    "name": "a",
    "children": [{
        "name": "b",
        "children": [{
            "name": "c"
        }, {
            "name": "g"
        }]
    }, {
        "name": "d"
    }]
}]

Das obige ist der detaillierte Inhalt vonWie kann ich ein Pfad-String-Array in eine baumartige Struktur umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn