家谱的数据结构

时间:2011-12-13 10:09:05

标签: c++ algorithm data-structures stl

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

我可以找到一些来自c ++ STL的数据结构。

只需要一些想法。

2 个答案:

答案 0 :(得分:4)

图表最适合这种情况,我建议您使用Boost

请注意,构建家谱可能会很棘手,如this question所示。

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

答案 1 :(得分:3)

是作业吗?

即使它被称为“树”,它也是一个糟糕的结构:想象两个兄弟娶两个姐妹。

一般的图形结构是最好的(树是图形的特定形式)。边缘会带来这种关系。然后你可以只在表示血缘关系的边缘上运行一个路径寻找算法(比如老旧的dijkstra)。

boost :: graph是一个非常好的库。