n-Queens 알고리즘
자료구조 & 알고리즘 :
2007. 4. 21. 10:32
반응형
n-Queens 알고리즘
#include
#include
#include
typedef int index;
index col[4];
index n=4;
void main(void)
{
void queens(index i);
queens(0);
}
void queens (index i)
{
int t;
index j;
bool promising(index i);
if(promising(i))
if(i==n){
for(t=1;t<=n;t++)
cout << col [t];
cout << "
";
}
else
for(j=1;j<=n; j++)
{
col[i+1]=j;
queens(i+1);
}
}
//-----------------------------------------------------------
bool promising(index i)
{
index k;
bool _switch;
k=1;
_switch=true;
while(k if(col[i]==col[k]||abs(col[i]-col[k])==i-k)
_switch=false;
k++;
}
return _switch;
}
#include
#include
#include
typedef int index;
index col[4];
index n=4;
void main(void)
{
void queens(index i);
queens(0);
}
void queens (index i)
{
int t;
index j;
bool promising(index i);
if(promising(i))
if(i==n){
for(t=1;t<=n;t++)
cout << col [t];
cout << "
";
}
else
for(j=1;j<=n; j++)
{
col[i+1]=j;
queens(i+1);
}
}
//-----------------------------------------------------------
bool promising(index i)
{
index k;
bool _switch;
k=1;
_switch=true;
while(k if(col[i]==col[k]||abs(col[i]-col[k])==i-k)
_switch=false;
k++;
}
return _switch;
}
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
양방향 연결 리스트 (0) | 2007.05.12 |
---|---|
Dijkstra 알고리즘 증명 (0) | 2007.04.21 |
Kruskal 알고리즘 증명 (0) | 2007.04.21 |