import java.util.ArrayList;
public class TreeNode<T> {
private TreeNode<T> Parent;
private ArrayList<TreeNode<T>> Children;
private T Data;
public TreeNode(T data) {
this.Data = data;
this.Children = new ArrayList<TreeNode<T>>();
}
public void AddChild(TreeNode<T> child) {
Children.add(child);
child.Parent = this;
}
public String SubTreeToString() {
String tree = this.Data.toString();
if (this.Children.size() > 0) {
tree += "(";
for (int i = 0; i < this.Children.size(); i++) {
tree += this.Children.get(i).SubTreeToString();
if (i < this.Children.size() - 1) {
tree += ", ";
}
}
tree += ")";
}
return tree;
}
public void DataSet(T data) {
Data = data;
}
public T DataGet() {
return Data;
}
public void ChildrenSet(ArrayList<TreeNode<T>> children) {
Children = children;
}
public ArrayList<TreeNode<T>> ChildrenGet() {
return Children;
}
public void ParentSet(TreeNode<T> parent) {
Parent = parent;
}
public TreeNode<T> ParentGet() {
return Parent;
}
}
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
TreeNode<String> root = new TreeNode<String>("Root");
TreeNode<String> node1 = new TreeNode<String>("L1");
TreeNode<String> node2 = new TreeNode<String>("L2");
TreeNode<String> node3 = new TreeNode<String>("L3");
TreeNode<String> leaf1_1 = new TreeNode<String>("L11");
TreeNode<String> leaf1_2 = new TreeNode<String>("L12");
TreeNode<String> leaf1_3 = new TreeNode<String>("L13");
TreeNode<String> leaf2_1 = new TreeNode<String>("L21");
TreeNode<String> leaf2_2 = new TreeNode<String>("L22");
root.AddChild(node1);
root.AddChild(node2);
root.AddChild(node3);
node1.AddChild(leaf1_1);
node1.AddChild(leaf1_2);
node1.AddChild(leaf1_3);
node2.AddChild(leaf2_1);
node2.AddChild(leaf2_2);
String tree = root.SubTreeToString();
System.out.println("Tree:");
System.out.println(tree);
}
}
Tree:
Root(L1(L11, L12, L13), L2(L21, L22), L3)
Комментариев нет:
Отправить комментарий