First version of the tree data struct

Signed-off-by: Franck Labat <franck.labat@gmail.com>
Add last file and readapt the code for the tree with visitor implementation.

Signed-off-by: Franck Labat <franck.labat@gmail.com>