首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串路径列表构建树结构

从字符串路径列表构建树结构
EN

Stack Overflow用户
提问于 2009-06-17 07:18:21
回答 4查看 29.1K关注 0票数 24

我在一个列表中有一个字符串路径集合,比如"x1/x2/x3“、"x1/x2/x4”、"x1/x5“。我需要从这个列表中构造一个树状结构,它可以迭代得到一个漂亮的打印树。像这样

代码语言:javascript
复制
     x1
    /  \
   x5   x2
       /  \
      x3  x4

有什么想法/建议吗?我相信这个问题可以首先通过处理字符串列表编辑来解决:选择的正确答案是一个优雅的实现,其他建议也很好。

EN

回答 4

Stack Overflow用户

发布于 2009-06-17 07:22:28

只需按其分隔符拆分每条路径,然后将它们逐个添加到树结构中。

即,如果'x1'不存在,则创建此节点;如果存在,则转到该节点并检查是否有子'x2',依此类推……

票数 12
EN

Stack Overflow用户

发布于 2009-06-17 07:21:12

我会让这棵树一根一根。

创建一个空树(它有一个根节点-我假设可能有一个类似于“x7/x8/x9”的路径)。

获取第一个字符串,将x1添加到根节点,然后将x2添加到x1,然后将x3添加到x2。

获取第二个字符串,看到x1和x2已经存在,将x4添加到x2。

对你拥有的每一条路径都这样做。

票数 5
EN

Stack Overflow用户

发布于 2018-03-17 23:59:35

为数组中的每个字符串创建树。只需为'/‘拆分路径,检查该节点是否存在于您的树中,如果存在,则继续...否则,创建一个新节点,并将此节点添加到父节点的子节点中。

使用递归进行迭代。

下面是树节点的模型。

代码语言:javascript
复制
Class Node{
    string name;
    List<Node> childrens;

    Node(string name){
        this.name = name;
        this.childrens = new List<Node>();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1005551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档