案例分析题

试题四
阅读下列说明和C代码,回答问题1至3,将解答写在答题纸的对应栏内。

【说明】
n皇后问题描述为:在一个nXn的棋盘上摆放n个皇后,要求任意两个皇后不能冲突, 即任意两个皇后不在同一行、同一列或者同一斜线上。
算法的基本思想如下:
将第i个皇后摆放在第i行,i从1开始,每个皇后都从第1列开始尝试。尝试时判断 在该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并考虑摆 放下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后考虑在原来位置的下一个位置上继续尝试摆放皇后,……,直到找到所有合理摆放方案。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明

问答题

根据题干说明,填充C代码中的空(1)〜(4)。

【正确答案】

1.queen[i]==queen[j]
2.1
3. Place(j)&&j<=n
4. Nqueen(j+1)

【答案解析】
问答题

根据题干说明和C代码,算法采用的设计策略为 (5)

【正确答案】

5. 回溯法

【答案解析】
问答题

当n=4时,有 (6) 种摆放方式,分别为 (7) 。

【正确答案】

6. 2 种
7. 2413 和 3142

【答案解析】