import java.util.ArrayList;
import java.util.Scanner;
public class GT_Construction {
class Node {
int data;
ArrayList<Node> children;
Node(int data) {
this.data = data;
this.children = new ArrayList<>();
}
private Node root;
private int size;
void GT_Construction() {
Scanner scn=new Scanner(System.in);
this.root=takeInput(scn,null,0);
}
Node takeInput(Scanner scn,Node parent,int ith_child) {
if(this.root==null) {
System.out.print("Enter the data for the root node");
}
else {
System.out.print("Enter the data for its"+ith_child+"ith_child of"+parent.data);
}
int nodeData=scn.nextInt();
Node node =new Node(nodeData);
this.size++;
System.out.print("Enter the number of children for"+node.data);
int children=scn.nextInt();
for(int i=0;i<children;i++) {
Node child=this.takeInput(scn,node,i);
node.children.add(child);
}
return node;
}
public void display() {
this.display(this.root);
}
private void display(Node node) {
String str=node.data+"=>";
for(int i=0;i<node.children.size();i++) {
str=str+node.children.get(i).data+",";
}
str=str+"END";
System.out.println(str);
for(int i=0;i<node.children.size();i++) {
this.display(node.children.get(i));
}
}
}
}
