⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queen.c

📁 数据结构学习用到的一些程序!!里面有二叉树相关的几个
💻 C
字号:
#include<stdio.h>
#include<malloc.h>
#include<math.h>

int *site;        //每行的棋子所放置的位置,下标从0开始
int queen;        //皇后的数目
int count=0;      //第几种放置的可能性

//判断第n+1行的放置是否合适
int IsOk(int n)
{
	int i;
    for(i=0;i<n;i++)
	{
		if(site[i]==site[n])
        return 0;
        if(abs(site[i]-site[n])==n-i)
        return 0;
	}
    return 1;
}

//具体执行放置判断以及输出最终结果
void Queen(int n)
{
	int i;
    if(queen==n)
	{
		printf("NO.%d: ",++count);
        for(i=0;i<queen;i++)
		{ 
			printf("%d ",site[i]);
		} 
		printf("\n");
        return;
	} 
	else
	{ 
		for(i=0;i<queen;i++)
		{ 
			site[n]=i;
            if(IsOk(n))
            Queen(n+1);                    
              //函数处
		} 
	} 
}

void main()
{
	printf("Please input the num of the queen:");
    scanf("%d",&queen);
    site=(int *)malloc(queen*sizeof(int));
    Queen(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -