Я сделаю все возможное, чтобы объяснить, что должен делать алгоритм:
Есть класс 'Рецепт'.Каждый Рецепт может включать другие Рецепты, но не может включать себя или любой другой Рецепт, который включает его.
Итак, простой пример - у нас всего два рецепта A и B.
Если A сначала добавляет B, то позже B не может добавить A, потому что это вызовет цикл.
Более сложный пример:
A, B, C
(1) Рецепт C добавляет B
(2) Рецепт B добавляет A
(3) РецептПопытка добавить C, но не может из-за отношений.C - B - A.
Я могу сделать это сам, я просто подумал, что это стандартный алгоритм с названием, и смогу ли я найти оптимальное решение.
Спасибо