概要:
からツリー状構造を構築するパス文字列の配列は難しい場合がありますが、適切な手法を使用すれば効率的に達成できます。
解決策:
提供された解決策は再帰関数 AddToTree を使用します。 、ツリーの現在の状態を表すノードのリストと追加される残りのパス セグメントを入力として受け取ります。アルゴリズムは次のように進みます:
コード スニペット:
<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>
ソリューションの利点:
出力例:
コードは次の出力を生成します:
[{ "name": "a", "children": [{ "name": "b", "children": [{ "name": "c" }, { "name": "g" }] }, { "name": "d" }] }]
以上がパス文字列配列をツリー状の構造に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。