import
java.lang.*;
import
java.io.*;
import
java.util.*;
public
class
Main {
public
static
int
V;
public
static
LinkedList<Integer> adj[];
@SuppressWarnings
(
"unchecked"
) Main(
int
v) {
V = v;
adj =
new
LinkedList[v];
for
(
int
i =
0
; i < v; ++i)
adj[i] =
new
LinkedList();
}
static
void
addEdge(
int
v,
int
w) {
adj[v].add(w);
}
static
void
DFSUtil(
int
v,
boolean
visited[]) {
visited[v] =
true
;
System.out.print(v +
" "
);
Iterator<Integer> i = adj[v].listIterator();
while
(i.hasNext()) {
int
n = i.next();
if
(!visited[n])
DFSUtil(n, visited);
}
}
static
void
Partition(
int
v) {
Iterator<Integer> i = adj[v].listIterator();
int
k =
1
;
boolean
visited[] =
new
boolean
[V];
visited[v] =
true
;
while
(i.hasNext()) {
System.out.println();
System.out.println(k +
"Tree"
);
++k;
int
n = i.next();
DFSUtil(n, visited);
}
}
public
static
void
main(String args[]) {
Main g =
new
Main(
10
);
g.addEdge(
0
,
1
); g.addEdge(
1
,
0
);
g.addEdge(
0
,
2
); g.addEdge(
2
,
0
);
g.addEdge(
1
,
3
); g.addEdge(
3
,
1
);
g.addEdge(
1
,
4
); g.addEdge(
4
,
1
);
g.addEdge(
2
,
5
); g.addEdge(
5
,
2
);
g.addEdge(
2
,
6
); g.addEdge(
6
,
2
);
g.addEdge(
5
,
7
); g.addEdge(
7
,
5
);
g.addEdge(
5
,
8
); g.addEdge(
8
,
5
);
g.addEdge(
6
,
9
); g.addEdge(
9
,
6
);
Partition(
2
);
}
}