关于c ++:Family树的数据结构

data structure for Family tree

我想知道哪种数据结构最适合存储一个人的家谱,有配偶关系、子女关系和父母关系。我还想知道,如果一个人和另一个人有血缘关系。

这是很好的,我可以找到一些来自C++ STL的数据结构。

只有想法是必需的。


一个图表最适合这个,我建议您使用Boost

请注意,如这个问题所示,建立一个家族树可能会很困难。

否则,std不定义图形数据结构。由于图表显然最适合您的情况,我建议您要么实现自己的版本,要么使用Boost


是家庭作业吗?

即使它被称为"树",它也是一个糟糕的结构:想象两个哥哥娶了两个姐妹。

一般的图结构最好(树是图的特定形式)。边缘将承载关系。然后,您可以只在表示血缘关系的边上运行一个路径查找算法(就像旧的dijkstra一样)。

图形是一个很好的库。