简介:
构造树状结构路径字符串数组可能具有挑战性,但通过适当的技术,可以有效地实现。
解决方案:
提供的解决方案采用递归函数 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中文网其他相关文章!