This project was developed in the context of the curricular unit “Analysis and Synthesis of Algorithms” during my Bachelor Degree. The objective was to implement an algorithm which evaluates input nodes and outputs if they create a valid genealogy tree. The algorithm is based on the concept of a binary search tree and was implemented using C++. The project was done in groups of 2, and it was attributed a grade of 19.5/20 - 17/17 to the code and 2.5/3 for the report.