在Java中,我們可以使用類和對象來表示樹形結(jié)構(gòu)。以下是一個簡單的例子,展示了如何使用Java實現(xiàn)樹形結(jié)構(gòu)的數(shù)據(jù)操作:
TreeNode
:import java.util.ArrayList;
import java.util.List;
public class TreeNode<T> {
private T data;
private List<TreeNode<T>> children;
public TreeNode(T data) {
this.data = data;
this.children = new ArrayList<>();
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public List<TreeNode<T>> getChildren() {
return children;
}
public void setChildren(List<TreeNode<T>> children) {
this.children = children;
}
public void addChild(TreeNode<T> child) {
children.add(child);
}
public void removeChild(TreeNode<T> child) {
children.remove(child);
}
}
public class TreeExample {
public static void main(String[] args) {
// 創(chuàng)建根節(jié)點
TreeNode<String> root = new TreeNode<>("Root");
// 創(chuàng)建子節(jié)點
TreeNode<String> child1 = new TreeNode<>("Child 1");
TreeNode<String> child2 = new TreeNode<>("Child 2");
// 將子節(jié)點添加到根節(jié)點
root.addChild(child1);
root.addChild(child2);
// 創(chuàng)建更多子節(jié)點并添加到child1節(jié)點
TreeNode<String> grandChild1 = new TreeNode<>("Grandchild 1");
TreeNode<String> grandChild2 = new TreeNode<>("Grandchild 2");
child1.addChild(grandChild1);
child1.addChild(grandChild2);
// 打印樹形結(jié)構(gòu)
printTree(root, 0);
}
private static void printTree(TreeNode<?> node, int level) {
if (node == null) {
return;
}
// 打印當前節(jié)點
System.out.println(" ".repeat(level) + node.getData());
// 遞歸打印子節(jié)點
for (TreeNode<?> child : node.getChildren()) {
printTree(child, level + 1);
}
}
}
這個例子創(chuàng)建了一個簡單的樹形結(jié)構(gòu),并使用printTree
方法遞歸地打印樹中的每個節(jié)點。你可以根據(jù)需要修改這個例子,以實現(xiàn)更復雜的樹形結(jié)構(gòu)操作。