我有以下结构:

[Employee]
ID
Manager1ID
Manager2ID

场景:
我要进行验证,以确保所选的Manager1或Manager2不会引起回合。换句话说,我想知道这种情况是否存在:

A的经理是B,B的经理是C,C的经理也是A //无效
A => B => C => A

告诉用户A不是C的有效管理员,因为C已经是A的管理员


问题:
我虽然检查了一会儿,然后将管理器作为树中的父级循环,当我在列表中找到选定的管理器时,我知道它是无效的。 (Manager1和Manager2的两个清单的两个循环)
问题是每个雇员可能有两个经理,并且在这种情况下可能存在一个回合:

A => B(Manager1)=> C(Manager2)=> A

哪个无法检查我建议的解决方案。
任何想法!

最佳答案

您尝试find a cycle in a directed graph

08-24 14:53