【发布时间】:2012-01-19 05:13:35
【问题描述】:
我想知道哪种数据结构最适合存储一个人的家谱,有配偶、子女和父母关系。我也想知道一个人是否与另一个人有血缘关系。
如果能找到一些来自 c++ STL 的数据结构就好了。
只需要想法。
【问题讨论】:
标签: c++ algorithm data-structures stl
我想知道哪种数据结构最适合存储一个人的家谱,有配偶、子女和父母关系。我也想知道一个人是否与另一个人有血缘关系。
如果能找到一些来自 c++ STL 的数据结构就好了。
只需要想法。
【问题讨论】:
标签: c++ algorithm data-structures stl
图表最适合这个,我建议你使用Boost。
请注意,构建家谱可能会很棘手,如 this question 所示。
否则,std 不会定义图形数据结构。由于图表显然最适合您的情况,我建议您要么实现自己的版本,要么使用Boost。
【讨论】:
这是作业吗?
即使它被称为“树”,它也是一个糟糕的结构:想象两个兄弟娶两个姐妹。
一般的图结构是最好的(树是图的特定形式)。边缘将承载关系。然后你可以只在代表血缘关系的边上运行寻路算法(比如好的老dijkstra)。
而且 boost::graph 是一个非常好的库。
【讨论】: