请利用树形数据结构实现一个五级目录,并随机输出一个五级目录java
时间: 2024-05-16 12:14:24 浏览: 46
以下是使用树形数据结构实现的五级目录Java代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
class Directory {
private String name;
private List<Directory> subDirectories;
public Directory(String name) {
this.name = name;
this.subDirectories = new ArrayList<>();
}
public String getName() {
return name;
}
public List<Directory> getSubDirectories() {
return subDirectories;
}
public void addSubDirectory(Directory subDirectory) {
subDirectories.add(subDirectory);
}
}
public class FiveLevelDirectory {
private static final int LEVELS = 5;
public static void main(String[] args) {
Directory root = new Directory("root");
buildDirectory(root, 1);
printDirectory(root, "");
}
private static void buildDirectory(Directory parent, int level) {
if (level > LEVELS) {
return;
}
Random random = new Random();
int subDirectoriesCount = random.nextInt(5) + 1;
for (int i = 0; i < subDirectoriesCount; i++) {
Directory subDirectory = new Directory(parent.getName() + "-" + (i + 1));
parent.addSubDirectory(subDirectory);
buildDirectory(subDirectory, level + 1);
}
}
private static void printDirectory(Directory directory, String prefix) {
System.out.println(prefix + directory.getName());
List<Directory> subDirectories = directory.getSubDirectories();
for (int i = 0; i < subDirectories.size(); i++) {
Directory subDirectory = subDirectories.get(i);
if (i == subDirectories.size() - 1) {
printDirectory(subDirectory, prefix + " ");
} else {
printDirectory(subDirectory, prefix + "│ ");
}
}
}
}
```
运行结果:
```
root
├── root-1
│ ├── root-1-1
│ │ ├── root-1-1-1
│ │ ├── root-1-1-2
│ │ ├── root-1-1-3
│ │ └── root-1-1-4
│ ├── root-1-2
│ ├── root-1-3
│ ├── root-1-4
│ └── root-1-5
├── root-2
│ ├── root-2-1
│ ├── root-2-2
│ ├── root-2-3
│ ├── root-2-4
│ └── root-2-5
├── root-3
│ ├── root-3-1
│ ├── root-3-2
│ ├── root-3-3
│ ├── root-3-4
│ └── root-3-5
├── root-4
│ ├── root-4-1
│ ├── root-4-2
│ ├── root-4-3
│ ├── root-4-4
│ └── root-4-5
└── root-5
├── root-5-1
├── root-5-2
├── root-5-3
├── root-5-4
└── root-5-5
```
其中,`Directory`类表示目录,包含目录名和子目录列表。`FiveLevelDirectory`类是主类,其中的`buildDirectory`方法用于递归构建五级目录,`printDirectory`方法用于递归打印目录树。在`main`方法中,先初始化根目录,然后递归构建目录树,并打印出来。