文件名称:qishi
介绍说明--下载内容均来自于网络,请自行研究使用
void Knight(int i , int j)
{
// printf("%d %dn",i,j)
if (board[i][j] != 0 || i < 0 || i >= Size || j < 0 || j >= Size )
{
return
}
step++
board[i][j]=step
if (step == Size*Size)
{
showboard()
system("PAUSE")
return
}
//DFS
Knight(i-2,j-1) //left
Knight(i-2,j+1)
Knight(i+2,j-1) //right
Knight(i+2,j+1)
Knight(i-1,j-2) //up
Knight(i+1,j-2)
Knight(i+1,j+2) //down
Knight(i-1,j+2)
//
board[i][j]=0
step--
}-void Knight (int i, int j) (//printf ( d dn , i, j) if (board [i] [j]! = 0 | | i <0 | | i> = Size | | j <0 | | j> = Size) (return) step++ board [i] [j] = step if (step == Size* Size) (showboard () system ( PAUSE ) return)// DFSKnight (i-2, j-1)// leftKnight (i-2, j+ 1) Knight (i+ 2, j-1)// rightKnight (i+ 2, j+ 1) Knight (i-1, j-2)// upKnight (i+ 1, j-2) Knight (i+ 1, j+ 2)// downKnight (i-1, j+ 2)// board [i] [j] = 0 step--)
{
// printf("%d %dn",i,j)
if (board[i][j] != 0 || i < 0 || i >= Size || j < 0 || j >= Size )
{
return
}
step++
board[i][j]=step
if (step == Size*Size)
{
showboard()
system("PAUSE")
return
}
//DFS
Knight(i-2,j-1) //left
Knight(i-2,j+1)
Knight(i+2,j-1) //right
Knight(i+2,j+1)
Knight(i-1,j-2) //up
Knight(i+1,j-2)
Knight(i+1,j+2) //down
Knight(i-1,j+2)
//
board[i][j]=0
step--
}-void Knight (int i, int j) (//printf ( d dn , i, j) if (board [i] [j]! = 0 | | i <0 | | i> = Size | | j <0 | | j> = Size) (return) step++ board [i] [j] = step if (step == Size* Size) (showboard () system ( PAUSE ) return)// DFSKnight (i-2, j-1)// leftKnight (i-2, j+ 1) Knight (i+ 2, j-1)// rightKnight (i+ 2, j+ 1) Knight (i-1, j-2)// upKnight (i+ 1, j-2) Knight (i+ 1, j+ 2)// downKnight (i-1, j+ 2)// board [i] [j] = 0 step--)
(系统自动生成,下载前可以参看下载内容)
下载文件列表
qishi
.....\qisi.doc
.....\qisi.doc