//说明://
//该程序用于处理九行九列数独表,入需要处理其他类型数独,则可在“shudu.h”中改变Type的值以达到目的//
//程序运行后会提示原始确定数据个数、每个数据的行、列、数值依次填入//
#include"shudu.h"
void main()
{
InitStack(); //构造堆栈
Init(); //对数独的原始数据进行输入
while(IsComplete()!=1) //检验是否已经完成
{
GetGuessLeast(); //遍历整个儿数独表,找出其中可能值个数最少的一个未知项
if(FirstProcess()==1) //检验可能值是否只有一个
continue ;
Push(); //如果该项肯能值多于一个,那么将当前数独表压入堆栈
SecondProcess(); //在可能值中选出一个来填入未知项
if(IsWrong()==1) //检验当前数独表是否有错误
Pop(); //如果有错误,那么出栈
else if(IsNoGuess()==1) //如果没有错误,并且还有该未知项的可能值没有尝试,那么重新循环
Pop(); //如果没有错误,并且该未知项的可能值都已经尝试过了,则出栈
}
PrintOut(); //打印结果
}
- 1
- 2
前往页