У меня есть эта проблема, что мне нужно решить проблему рекурсивного возврата. Она очень похожа на проблему n ферзей, но отличается тем, что в ней используются разные кандидаты на асимметричной доске. Всего есть четыре разных кандидата, каждый из которых зависит от одного и другого. У меня 2 туза, 2 короля, 2 дамы и 2 валета. Каждый туз должен быть рядом (по горизонтали или вертикали) с королем, каждый король должен быть рядом с дамой, а каждая дама должна быть рядом с валетом, и ни одна из фигур не может иметь дубликатов рядом с собой. Доска с правильным решением выглядит так:
Grid (y, x)(only the positions between *y,x* are available for candidates):
4,1 4,2 *4,3* 4,4
3,1 *3,2* *3,3* *3,4*
*2,1* *2,2* *2,3* 2,4
1,1 1,2 *1,3* 1,4
Possible Solution
. . K .
Q J Q .
. A K A
. . J .
Теперь моя проблема в том, что я хочу использовать дерево для отслеживания кандидатов в качестве родителей и детей дерева. Я еще не реализовал дерево, но мне было интересно, является ли метод, показанный в этом примере, хорошим способом создания дерева. И если это хороший способ создать дерево, с чего мне начать, как дерево узнает, к какому родителю оно должно быть дочерним, а также вернуться, когда решение не подходит?
Надеюсь, я добавил достаточно информации об этой ситуации, заранее спасибо.