-
Notifications
You must be signed in to change notification settings - Fork 5
/
ques3again.java
86 lines (79 loc) · 1.6 KB
/
ques3again.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import java.util.*;
class node{
int data;
node left, right;
node(int d){
data=d;
left=null;
right=null;
}
}
class Tree{
node root;
static LinkedList<Integer>[] list;
Tree(int d){
root = new node(d);
}
void add(int d){
node temp = root, parent =root;
while(temp!=null){
parent = temp;
if(temp.data > d)
temp = temp.left;
else
temp = temp.right;
}
node newnode = new node(d);
if(parent.data > d)
parent.left = newnode;
else
parent.right = newnode;
}
void output(node n){
if(n!=null){
System.out.println(n.data);
output(n.left);
output(n.right);
}
}
void getDepth(node n){
if(n==null)
return 0;
if(n.left==null)
return getDepth(n.right) + 1;
if(n.right==null)
return getDepth(n.left) + 1;
return Math.min((n.right),(n.left)) + 1;
}
LinkedList<Integer>[] listOfDepths(){
Node temp = this.root;
int h = getDepth(temp);
list = new LinkedList<Integer>[h];
for(int i=0; i<h; i++)
{
list[i] = new LinkedList<Integer>();
printGivenLevel(temp,i, list[i]);
}
}
void printGivenLevel(node temp, int i, LinkedList<Integer> list){
if(temp == null)
return ;
if(i == 0)
list.add(temp.data);
else{
printGivenLevel(temp.left, i-1, list);
printGivenLevel(temp.right, i-1, list);
}
}
}
class ques3again{
public static void main(String[] args) {
Tree t = new Tree(5);
t.add(3);
t.add(6);
t.add(4);
t.add(1);t.add(7);
t.add(2);
t.output(t.root);
}
}