A tree is a type of data structure with many children for each node. The time complexity for creating a tree is O(1). And the time complexity for searching, inserting, or deleting a node which depends on the height of the tree h, so the worst time complexity is O(h).
For e.g., P is the root of the given tree.
Code Implementation:
import java.util.Scanner;
public class Tree {
static Scanner s = new Scanner(System.in);
public static TreeNode<Integer> takeinput(){
System.out.println("enter next node data: ");
int n = s.nextInt();
TreeNode<Integer> root = new TreeNode<Integer>(n);
System.out.println("enter the number of children for"+n);
int children_number = s.nextInt();
for(int i =0; i< children_number; i++){
TreeNode<Integer> child = takeinput();
root.children.add(child);
}
return root;
}
public static void print(TreeNode<Integer> root){
String s = root.data + ":";
for(int i =0; i<root.children.size(); i++){
s = s + root.children.get(i).data + ",";
}
System.out.println(s);
for(int i =0; i<root.children.size(); i++){
print(root.children.get(i));
}
}
public static TreeNode<Integer> takeinputrecursive(){
System.out.println("enter root data");
int rootData = s.nextInt();
if(rootData == -1){
return null;
}
TreeNode<Integer> root = new TreeNode<Integer>(rootData);
System.out.println("enter number of children for "+rootData);
int children_num = s.nextInt();
while(children_num>0){
TreeNode<Integer> child = takeinputrecursive();
root.children.add(child);
children_num--;
}
return root;
}
public static void main(Str[] args) {
// TreeNode<Integer> rootinput = takeinput();
// print(rootinput);
TreeNode<Integer> rootrecursive = takeinputrecursive();
print(rootrecursive);
}
// that will be the input from user:
// enter next node data:
// 4
// enter the number of children for4
//3
// enter next node data:
// 2
// enter the number of children for2
//0
// enter next node data:
// 3
// enter the number of children for3
//1
// enter next node data:
// 6
// enter the number of children for6
//0
// enter next node data:
// 5
// enter the number of children for5
//0
// that is the output of user
// 4:2,3,5,
// 2:
// 3:6,
// 5:
// 6:
}
Here the implementation of code is simple or recursive.