我想知道哪种数据结构最适合存储一个人的家谱,有配偶、孩子和父母关系。我还想知道,如果一个人和另一个人有血缘关系。
如果能找到c++ STL中的一些数据结构就好了。
只需要想法即可。
发布于 2011-12-13 18:14:02
是家庭作业吗?
即使它被称为“树”,它也是一个糟糕的结构:想象一下,一对兄弟娶了两个姐妹。
一般的图结构将是最好的(树是图的特定形式)。边缘将承载这种关系。然后,你可以只在代表血缘关系的边上运行路径查找算法(就像以前的dijkstra一样)。
而boost::graph是一个非常好的库。
发布于 2011-12-13 18:11:09
图最适合于此,我建议您使用Boost。
请注意,构建家族树可能被证明是棘手的,如this question所示。
否则,std不会定义图形数据结构。由于图显然最适合您的情况,因此我建议您实现自己的版本,或者使用Boost。
https://stackoverflow.com/questions/8487374
复制相似问题