import
java.util.*;
class
GFG
{
static
class
Node
{
char
data;
Node left, right;
Node(
char
_val)
{
data = _val;
left = right =
null
;
}
};
static
Node addinBT(Node root,
char
data)
{
if
(root ==
null
)
{
root =
new
Node(data);
}
else
{
Queue<Node> Q =
new
LinkedList<Node>();
Q.add(root);
while
(!Q.isEmpty())
{
Node temp = Q.peek();
Q.remove();
if
(temp.left ==
null
)
{
temp.left =
new
Node(data);
break
;
}
else
Q.add(temp.left);
if
(temp.right ==
null
)
{
temp.right =
new
Node(data);
break
;
}
else
Q.add(temp.right);
}
}
return
root;
}
static
void
print(Node root)
{
Queue<Node> Q =
new
LinkedList<Node>();
Q.add(root);
while
(Q.size() >
0
)
{
Node temp = Q.peek();
Q.remove();
System.out.print(temp.data);
if
(temp.left !=
null
)
Q.add(temp.left);
if
(temp.right !=
null
)
Q.add(temp.right);
}
}
static
boolean
checkvowel(
char
ch)
{
ch = Character.toLowerCase(ch);
if
(ch ==
'a'
|| ch ==
'e'
||
ch ==
'i'
|| ch ==
'o'
||
ch ==
'u'
)
{
return
true
;
}
else
{
return
false
;
}
}
static
Node removevowels(Node root)
{
Queue<Node> Q =
new
LinkedList<Node>();
Q.add(root);
Node root1 =
null
;
while
(!Q.isEmpty())
{
Node temp = Q.peek();
Q.remove();
if
(!checkvowel(temp.data))
{
root1 = addinBT(root1, temp.data);
}
if
(temp.left !=
null
)
{
Q.add(temp.left);
}
if
(temp.right !=
null
)
{
Q.add(temp.right);
}
}
return
root1;
}
public
static
void
main(String[] args)
{
String s =
"geeks"
;
Node root =
null
;
for
(
int
i =
0
; i < s.length(); i++)
{
root = addinBT(root, s.charAt(i));
}
root = removevowels(root);
print(root);
}
}