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]) p>
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
}
;