家谱上的两个人之间的关系

时间:2015-03-17 11:58:20

标签: php algorithm tree traversal

我正在为我父母制作一个小家谱项目(php + mysql)。由于整棵树相当宽,并且不能通过长镜头适合任何屏幕,我想建立一个“关系查找器”,一种显示两个任意,可能非常相关的人之间关系的方式。

每个祖先都使用自己的个人ID存储在数据库中。每个人($ ancestor [$ id])有0-2个父母(int ID)和0-11个孩子(带有int ID的数组):

int $ancestor[$id]["father"]
int $ancestor[$id]["mother"]
array $ancestor[$id]["children"]

我现在需要找到$ ancestor [$ some_id]和$ ancestor [$ another_id]之间的最短连接,作为$ some_id和$ another_id之间的ID列表。

有没有一种优雅的方法/算法来做到这一点,没有遍历每个可能的排队(儿童)和下来(​​祖先),直到找到2个(或没有)匹配的ID?任何你可以给我关于这个主题的指针都会非常感激,因为我之前从未使用过那种方式使用树木/图表。

欢呼声

0 个答案:

没有答案