* initial implementation on generic tree algorithm
** tree node data structure
** visiter pattern of tree traversal
** template metaprogrammed tree builder

* test cases of visitor pattern of tree traversal
** using google mock framework
* Refactor TreeNode Visitor algorithm
** Reverse the logic of TreeNode algorithm and Visitor traversal
** embed the TreeWalker object into TreeNode instantiation
* Tree algorithm
** re-implement node-to-node replacement for root/intermediate/leaf case
** add test cases
* Tree Visitor Algorithm
** Pass TreeWalker ptr to each level of tree node

* Tree Node
** Simplify the Tree Node data structure
** Use raw pointer to parent to avoid cyclic referencing (free twice
error)