What collection works best for maintaining a family tree, where each node can have multiple parents and multiple children, spouse relationships, etc.?
You'd have to design that yourself (though you can use Collection objects like Lists in the implementation as a convenience), and design Comparators to support your final implementation classes of a "FamilyTreePerson" for sorting purposes (like sort by name or sort by birthdate, etc.).
After that, you have to decide what "Iteration" over the tree really means and define Iterator classes over the Graph. After that, completing the Collection interface should be pretty simple.
This is getting heavily into "Generic Programming", and I advise you read more about that (most GP work is being done in connection with the STL from C++).