<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Life is filled with wonder

    置頂隨筆 #

    [置頂]八皇后

    寫了兩天,
    應(yīng)用遞歸和回溯.
    對(duì)如何組織類,
    更一步加深
    /Files/xyq002444/Queens.rar
    八皇后主程序的算法
    import java.util.*;

    public class QueenSolver {

        
    private int count;  //皇后的數(shù)目
        private Queen queens[];
        
    private Queue<Queen[]> queue;

        
    public QueenSolver(int count) {
            
    this.count = count;
            queens 
    = new Queen[count];
            queue 
    = new QueenList<Queen[]>();
            
    this.initialize();
            
    this.process();
        }

        
    //初始化
        private void initialize() {
            
    for (int i = 0; i < count; i++{
                queens[i] 
    = new Queen(i + 10);
            }

        }

        
    //能否放置一個(gè)皇后
        private boolean place(Queen queen) {
            
    for (int i = 0; i < queen.x - 1; i++{
                
    if (queens[i].y == queen.y || queens[i].getX_Y() == queen.getX_Y() || queens[i].getAddXY() == queen.getAddXY()) {
                    
    return false;
                }

            }

            
    return true;
        }


        
    private void process() {
            
    int k = 1;
            queens[k 
    - 1].y = 0;
            
    while (k > 0{
                queens[k 
    - 1].y = queens[k - 1].y + 1;
                
    while (queens[k - 1].y <= count && !this.place(queens[k - 1])) {
                    queens[k 
    - 1].y = queens[k - 1].y + 1;
                }

                
    if (queens[k - 1].y <= count) {
                    
    if (k == count) {
                        
    //                   this.printPosition(queens);
                        Queen[] queenClone = new Queen[queens.length];
                        
    for (int i = 0; i < queenClone.length; i++{
                            queenClone[i] 
    = new Queen(queens[i].x, queens[i].y);
                        }

                        
    for (int i = 0; i < queens.length; i++{
                            queens[i].setXPosition();
                            queens[i].setYPosition();
                        }

                        queue.offer(queenClone);
                    }
     else {
                        k 
    = k + 1;
                        queens[k 
    - 1].y = 0;
                    }

                }
     else {
                    k 
    = k - 1;
                }

            }

        }


        
    public void printPosition(Queen[] queens) {
            
    for (Queen queen : queens) {
                System.out.println(queen.x 
    + " y: " + queen.y);
            }

        }


        
    public Queue<Queen[]> getQueue() {
            
    return this.queue;
        }

    }

    posted @ 2007-12-14 21:14 小屁 閱讀(822) | 評(píng)論 (2)編輯 收藏

    僅列出標(biāo)題  
    主站蜘蛛池模板: 久久精品国产亚洲av麻豆小说 | 人妻仑乱A级毛片免费看| 午夜免费福利在线| 国产在亚洲线视频观看| 亚洲AV无码成人网站久久精品大| 特级毛片aaaa级毛片免费| 久久亚洲国产成人影院网站 | 午夜亚洲www湿好大| 无码国产精品一区二区免费式直播| 亚洲AV午夜成人片| 成人毛片18女人毛片免费| 久久成人永久免费播放| 亚洲欧洲日产专区| 亚洲国产一成久久精品国产成人综合| 亚洲最大av资源站无码av网址| 91久久精品国产免费一区| 亚洲精品动漫免费二区| 国产亚洲av片在线观看16女人 | 免费av片在线观看网站| 亚洲综合av一区二区三区| 亚洲欧洲日产国码av系列天堂| 免费看美女午夜大片| 亚洲婷婷综合色高清在线| 亚洲欧洲国产成人综合在线观看 | 免费国产高清视频| 1a级毛片免费观看| 一区二区三区免费视频播放器 | 国产精品免费视频播放器| 国产麻豆成人传媒免费观看 | 怡红院免费的全部视频| 亚洲人成影院在线高清| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲精品乱码久久久久66| 在线观看国产情趣免费视频 | 91免费国产精品| 最好免费观看高清在线| 黄人成a动漫片免费网站| 亚洲欧美日韩中文无线码| 亚洲熟妇无码久久精品| 亚洲国产精品一区二区成人片国内| 人妻丰满熟妇无码区免费|