我想知道哪个数据结构最适合存储一个人的家谱,有配偶,子女和父母的关系。另外我想知道,如果一个人与其他人有血缘关系。
我可以找到一些来自c ++ STL的数据结构。
只需要一些想法。
答案 0 :(得分:4)
图表最适合这种情况,我建议您使用Boost
。
请注意,构建家谱可能会很棘手,如this question所示。
否则,std
未定义图形数据结构。由于图表显然最适合您的情况,我建议您实施自己的版本,或使用Boost
。
答案 1 :(得分:3)
是作业吗?
即使它被称为“树”,它也是一个糟糕的结构:想象两个兄弟娶两个姐妹。
一般的图形结构是最好的(树是图形的特定形式)。边缘会带来这种关系。然后你可以只在表示血缘关系的边缘上运行一个路径寻找算法(比如老旧的dijkstra)。
boost :: graph是一个非常好的库。