This commit is contained in:
2022-11-24 15:17:33 +01:00
parent b7f44474fc
commit b18f49ddd5
13 changed files with 412 additions and 2 deletions

View File

@@ -0,0 +1,41 @@
import java.util.Collection;
import java.util.HashSet;
public class Node<T> {
private T value;
private Collection<Node<T>> subNodes;
public Node(T value) {
this.value = value;
this.subNodes = new HashSet<>();
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public Collection<Node<T>> getSubNodes() {
return this.subNodes;
}
public boolean addSubNode(Node<T> node) {
return subNodes.add(node);
}
public boolean remSubNode(Node<T> node) {
return subNodes.remove(node);
}
public void showNode(int level) {
for (int i = 0; i < level; i++) System.out.print("\t");
System.out.println(value.toString());
for (Node<T> subNode : subNodes) {
subNode.showNode(level + 1);
}
}
}

View File

@@ -0,0 +1,27 @@
import java.io.File;
/**
* Repertoires
*/
public class Repertoires {
public static void main(String[] args) {
Tree<String> tree = new Tree<>();
File f = new File(args.length > 0 ? args[0] : ".");
tree.getRootNode().setValue(f.getName());
fillNode(tree.getRootNode(), f);
tree.showTree();
}
public static void fillNode(Node<String> node, File folder) {
for (File f : folder.listFiles()) {
Node<String> subNode = new Node<String>(f.getName());
if (f.isDirectory()) {
fillNode(subNode, f);
}
node.addSubNode(subNode);
}
}
}

View File

@@ -0,0 +1,19 @@
public class Tree<T> {
private Node<T> rootNode;
public Tree() {
rootNode = new Node<T>(null);
}
public void setRootNode(Node<T> rootNode) {
this.rootNode = rootNode;
}
public Node<T> getRootNode() {
return rootNode;
}
public void showTree() {
rootNode.showNode(0);
}
}