再帰呼び出し
この探索は次のように再帰的に表現できます.i列の探索をQtry(i)とします.Qtry(i) の中で Qtry(i+1)を再帰的に呼び出し、次の行の配置を求めていることに注意してください.try(i)を終了しますと、(これは try(iー1) から呼び出されていますから ) try(iー1)に戻り iー1 列の次の行の配置を試みることになります。 try(iー1)に戻る、ことがバックトラックになります。
Qtry(i)
{
i 列で配置可能な行位置 j を捜す
配置可能の場合
i < Nなら Qtry(i+1) で次の列に進む
i 列 j 行 の配置を解除する
i = N-1 なら解が求まったので出力する
i 列のすべての可能性を調べたら終了
(i-1 列の配置に戻る)
}