Implement CQuery which allows generic traversing tree using DFS and BFS.
It should take one argument, function which splits node into children nodes. Something like:
```
split(node) => Collection<node>
split(node) => Iterator<node>
split(node) => CQuery<node>
```
Implement CQuery which allows generic traversing tree using DFS and BFS.
It should take one argument, function which splits node into children nodes. Something like:
Implementing DFS is easy. Implementing BFS looks like a nightmare.