📄 nqueentree.java
字号:
import java.io.*;
import java.lang.Math;
import javax.swing.*;
import javax.swing.tree.*;
public class NQueenTree extends JFrame{
int k,n,x[],node;
JTree tree;
DefaultMutableTreeNode branch[];
JScrollPane scrollPane;
NQueenTree(int n){
this.n=n;
k=0;
x=new int[n+1];
x[0]=0;
node=0;
branch=new DefaultMutableTreeNode[n+1];
branch[0]=new DefaultMutableTreeNode("0");
tree=new JTree(branch[0]);
JScrollPane scrollPane=new JScrollPane();
scrollPane.setViewportView(tree);
getContentPane().add(scrollPane);
setVisible(true);
pack();
}
boolean PLACE(int z){
int i=1;
while(i<z){
if((x[i]==x[z])||(Math.abs(x[i]-x[z])==Math.abs(i-z)))
return false;
i++;
}
return true;
}
void solution(){
x[1]=0;
k=1;
while(k>0){
x[k]=x[k]+1;
while((x[k]<=n)&&!PLACE(k))
x[k]=x[k]+1;
if(x[k]<=n)
{ node++;
if(k==n)
{branch[k]=new DefaultMutableTreeNode((char)(x[k]+48),false);
branch[k-1].add(branch[k]);
for(int i=1;i<=n;i++)
System.out.print(x[i]);
System.out.println();
}
else {
branch[k]=new DefaultMutableTreeNode((char)(x[k]+48));
branch[k-1].add(branch[k]);
k++;x[k]=0;
}
}
else k--;
}
System.out.println("the number of created node is "+node);
}
public static void main(String args[]){
NQueenTree Queen=new NQueenTree(10);
Queen.solution();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -