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

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

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

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    輪圈數(shù)數(shù)退出問(wèn)題

    package com.sitinspring.roundtable;

    /** *//**
     * 循環(huán)鏈表節(jié)點(diǎn)類
     * 
    @author: sitinspring(junglesong@gmail.com)
     * @date: 2008-7-1-下午10:42:49
     * 
    @param <T>
     
    */

    class Node{
        
    protected String name;
        
    protected boolean isQuited;
        
    protected Node next;
    }


    /** *//**
     * 循環(huán)鏈表類,用于解決輪圈數(shù)數(shù)退出問(wèn)題的建模
     * 
    @author: sitinspring(junglesong@gmail.com)
     * @date: 2008-7-1-下午10:42:37
     * 
    @param <T>
     
    */

    public class CircleChainList{
        
    // 頭節(jié)點(diǎn)
        private Node first;
        
        
    // 人個(gè)數(shù)
        private int length;
        
        
    /**
         * 輪圈退出
         * 
    @param interval 間隔或起始數(shù)
         
    */

        
    public void wheelOut(int interval){
            
    // 總節(jié)點(diǎn)數(shù)
            int n=length;
            
            
    // 當(dāng)前輪到的下標(biāo)
            int currentIndex=interval;
            
            
    // 當(dāng)前節(jié)點(diǎn)
            Node currentNode=first;
            
            
    // 輪圈退出直到剩下最后一個(gè)人
            while(n>1)
                
    // 經(jīng)過(guò)一個(gè)未推出節(jié)點(diǎn)即下標(biāo)減一
                if(currentNode.isQuited==false){                  
                    currentIndex
    --;                
                }
      
                
                
    // 走向下一個(gè)節(jié)點(diǎn)
                currentNode=currentNode.next;
                
                
    // 當(dāng)下標(biāo)為0及當(dāng)前節(jié)點(diǎn)未退出時(shí)讓其退出
                if(currentIndex==0 && currentNode.isQuited==false){
                    currentNode.isQuited
    =true
                    System.out.println(currentNode.name
    +"退出");
                    n
    --;    
                    currentIndex
    =interval;   
                }

            }

            
            
    // 找出最后一個(gè)幸存者
            currentNode=first;
            
    while(true){
                
    if(currentNode.isQuited==false){
                    System.out.println(currentNode.name
    +"是最后的幸存者");
                    
    break;
                }

                
    else{
                    currentNode
    =currentNode.next;
                }

            }

        }

        
        
    /**
         * 顯示鏈表元素
         *
         
    */

        
    public void display(){
            System.out.print(
    "鏈表元素有");
            Node curr
    =first;
            
    int n=length;
            
            
    while(n>0){
                System.out.print(curr.name
    +"-("+curr.isQuited+"");
                curr
    =curr.next;
                n
    --;
            }

            System.out.println();
        }

        
        
    /**
         * 添加一個(gè)數(shù)組組成環(huán)形鏈表
         * 
    @param arr
         
    */

        
    public void addArray(String[] arr){
            length
    =arr.length;
            
    for(String t:arr){
                addTail(t);
            }

            
            
            Node curr
    =first;
            
            
    while(curr.next!=null){
                curr
    =curr.next;
            }

            
    // 將最后一個(gè)節(jié)點(diǎn)的指針指向頭節(jié)點(diǎn)形成環(huán)形鏈表
            curr.next=first;
        }

        
        
    /**
         * 在鏈表尾部添加節(jié)點(diǎn)
         * 
    @param t
         
    */

        
    public void addTail(String t){
            Node newNode
    =new Node();
            newNode.name
    =t;
            
            
    if(first==null){                        
                first
    =newNode;
            }

            
    else{
                Node curr
    =first;
                
                
    while(curr.next!=null){
                    curr
    =curr.next;
                }

                
                curr.next
    =newNode;
            }

        }

        
        
    public static void main(String[] args){
            CircleChainList ls
    =new CircleChainList();
            
            String[] arr
    ={"1","2","3","4","5","6","7","8"};
            ls.addArray(arr);
            ls.wheelOut(
    2);
        }

    }

    posted on 2008-07-05 09:14 sitinspring 閱讀(432) 評(píng)論(0)  編輯  收藏 所屬分類: 算法數(shù)據(jù)結(jié)構(gòu)

    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 一级午夜a毛片免费视频| 免费观看又污又黄在线观看| 丁香婷婷亚洲六月综合色| 亚洲狠狠成人综合网| 亚洲AV成人一区二区三区观看| 免费观看亚洲人成网站| 香蕉免费看一区二区三区| 国产精品99精品久久免费| 国产免费的野战视频| 国产成人免费片在线视频观看| 亚洲日本一区二区三区在线不卡| 亚洲高清国产AV拍精品青青草原 | 日韩免费视频播播| 亚洲男人第一无码aⅴ网站| 亚洲第一视频网站| 亚洲国产精品久久久久秋霞小| 一级日本高清视频免费观看 | 真人做人试看60分钟免费视频| 日韩免费观看的一级毛片| 亚洲色成人中文字幕网站| 亚洲日韩在线视频| 色爽黄1000部免费软件下载| 无码A级毛片免费视频内谢| 女人18毛片水真多免费看| 国产精品亚洲mnbav网站| 亚洲国产精品成人精品小说| 免费播放美女一级毛片| 一区二区三区福利视频免费观看| 日本高清免费网站| 亚洲AV无码成人精品区天堂| 亚洲乱色伦图片区小说| 在线观看肉片AV网站免费| 全免费一级午夜毛片| 国产V亚洲V天堂无码久久久 | 亚洲AV无码1区2区久久| 亚洲国产欧洲综合997久久| 可以免费观看的毛片| 国产精品免费_区二区三区观看| 久久久久亚洲AV无码专区首| 精品久久久久久亚洲综合网| 免费A级毛片无码视频|