簡介:
構造樹狀結構路徑字串陣列可能具有挑戰性,但透過適當的技術,可以有效地實現。
解決方案:
提供的解決方案採用遞歸函數 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中文網其他相關文章!