Red de conocimiento informático - Aprendizaje de código fuente - La estructura de datos utiliza pila y retroceso para resolver el problema de las ocho reinas

La estructura de datos utiliza pila y retroceso para resolver el problema de las ocho reinas

#include lt;stdio.hgt;

#include lt;stdlib.hgt

int Juez(int *p, int j)

//Determine si la posición actual de la pieza de ajedrez se ajusta a las reglas; si es así, devuelva 1; de lo contrario, devuelva 0

{

int

;

for( i=0; ilt; j; i )

{

if(p[j]==p[i]) devuelve 0;

if( abs(p[j]-p[i])==j-i) devuelve 0;

}

devuelve 1;

int main()

{

int a[8]; //a[i] representa la última posición de la i-ésima línea (a [3]=0 representa la La reina de la fila 3 está en la columna 0)

int i=0, j=0, k=0

for(a[0]; =0; a[0]lt ;8; j=0, a[j] )

para(a[ j]=0; a[j]lt; 8; j=1, a[ j] )

if(Juez(a,j))

for(a[j]=0;a[j]lt;8;j=2,a[j ])

if(Juez(a,j))

for(a[j]=0;a[j]lt;8;j=3,a[j] )

if(Juez(a,j))

for(a[j]=0;a[j]lt;8;j=4,a[j])

if (Juez(a,j))

for(a[j]=0;a[j]lt;8;j=5,a[j])

if( Juez(a,j))

for(a[j]=0;a[j]lt;8;j=6,a[j])

if(Juez (a, j))

for(a[ j]=0; a[j]lt; 8; a[j] )

if(Juez(a, j) )

{

for(i=0;ilt;8;i) printf("d",a[i]); p>

printf(" 3s", " ");

if(!( k7)) printf("\n");

}

printf("\n\ n-*** tiene d soluciones\n\n", k

devuelve

}

;