java 全路径生成树型结构
时间: 2023-10-11 18:17:43 浏览: 106
生成树型结构通常可以使用递归算法,以下是一个示例代码:
假设我们有一个如下的路径字符串:
```java
String path = "/a/b/c/d";
```
我们希望将其转换为如下的树型结构:
```
a
└── b
└── c
└── d
```
可以使用以下的代码实现:
```java
import java.util.ArrayList;
import java.util.List;
public class TreeGenerator {
public static void main(String[] args) {
String path = "/a/b/c/d";
Node rootNode = generateTree(path);
System.out.println(rootNode.toString());
}
public static Node generateTree(String path) {
String[] pathArray = path.split("/");
Node rootNode = new Node(pathArray[1]);
Node currentNode = rootNode;
for (int i = 2; i < pathArray.length; i++) {
Node childNode = new Node(pathArray[i]);
currentNode.addChild(childNode);
currentNode = childNode;
}
return rootNode;
}
static class Node {
private String name;
private List<Node> children = new ArrayList<>();
public Node(String name) {
this.name = name;
}
public void addChild(Node child) {
children.add(child);
}
@Override
public String toString() {
return toString(0);
}
private String toString(int level) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < level; i++) {
sb.append(" ");
}
sb.append(name).append("\n");
for (Node child : children) {
sb.append(child.toString(level + 1));
}
return sb.toString();
}
}
}
```
该代码会输出以下内容:
```
a
b
c
d
```
其中,`Node` 类表示树中的节点,`generateTree` 方法用于将路径字符串转化为树型结构,`toString` 方法用于将树型结构转化为字符串。
阅读全文