最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java采用循環(huán)鏈表結(jié)構(gòu)求解約瑟夫問題

 更新時間:2014年12月08日 10:09:24   投稿:shichen2014  
這篇文章主要介紹了Java采用循環(huán)鏈表結(jié)構(gòu)求解約瑟夫問題的解決方法,是很多Java面試環(huán)節(jié)都會遇到的經(jīng)典考題,這里詳細給出了約瑟夫問題的原理及Java解決方法,是非常經(jīng)典的應用實例,具有一定的參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java采用循環(huán)鏈表結(jié)構(gòu)求解約瑟夫問題的方法。分享給大家供大家參考。具體分析如下:

這是第一次java考試的試題,對于沒看過鏈表的同學來說就不會做,現(xiàn)在回頭看看,還真不難。

約瑟夫問題:
有n個人,其編號分別為1,2,3,…,n。這n個人按順序排成一個圈?,F(xiàn)在給定s和d,從第s個人開始從1依次報數(shù),數(shù)到d的人出列,然后又從下一個人開始又從1開始依次報數(shù),數(shù)到d的人又出列,如此循環(huán),直到最后所有人出列為止。要求定義一個節(jié)點類,采用循環(huán)鏈表結(jié)構(gòu)求解約瑟夫問題。

以下java版的答案:

復制代碼 代碼如下:
import java.util.Scanner;
public class LinkNode {              //單向鏈表的節(jié)點類
    public int data;                 //存放節(jié)點值
    public LinkNode next;            //存放節(jié)點值的引用
   
    public LinkNode(int k){         //構(gòu)造方法 ,值為k的節(jié)點
        data = k;
        next= null;
    }
}
 class Josephus{
    public static void printJosephus(int n,int s,int d){       
        int i=1;                    //創(chuàng)建長為n的循環(huán)列表
        LinkNode q,tail;
        
        LinkNode head = new LinkNode(i);
        head.next = head ;
        tail = head;             //第一個節(jié)點,尾巴和頭在一起
       
        while(i<n){
            i++;
            q = new LinkNode(i);    //增加一個新節(jié)點
            q.next = head ;        //節(jié)點的引用指向頭
            tail.next = q;            //最后一個元素的引用指向了q
            tail = q;              //那么最后一個元素就是q
        }

        int j= 0;               //從s開始報數(shù),依次輸出出列人的編號
        LinkNode p = head;      //計數(shù)起點
        while(j<s-1){
            j++;
            p = p.next;
        }
        while(p.next != p){
            j = 1;
            while(j<d-1)   //計數(shù)的起始點
            {
                j++;
                p = p.next;
            }       
            System.out.print(p.next.data + " ");  // 輸出出列的節(jié)點號
            p.next = p.next.next;
            p = p.next;                                //不斷指向下一個節(jié)點           
        }
        System.out.print(p.data);
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int a = input.nextInt();
        int b = input.nextInt();
        Josephus.printJosephus(n, a, b);
    }
}

希望本文所述對大家的Java程序設計有所幫助。

相關(guān)文章

  • SpringBoot屬性注入的多種方式實例

    SpringBoot屬性注入的多種方式實例

    在 SpringBoot中,提供了一種新的屬性注入方式,支持各種java基本數(shù)據(jù)類型及復雜類型的注入,下面這篇文章主要給大家介紹了關(guān)于SpringBoot屬性注入的多種方式,需要的朋友可以參考下
    2021-10-10
  • SpringMVC中RequestContextHolder獲取請求信息的方法

    SpringMVC中RequestContextHolder獲取請求信息的方法

    這篇文章主要介紹了SpringMVC中RequestContextHolder獲取請求信息的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • SpringBoot中GlobalExceptionHandler異常處理機制詳細說明

    SpringBoot中GlobalExceptionHandler異常處理機制詳細說明

    Spring Boot的GlobalExceptionHandler是一個全局異常處理器,用于捕獲和處理應用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關(guān)于Java中GlobalExceptionHandler異常處理機制的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Eclipse+Java+Swing實現(xiàn)學生成績管理系統(tǒng)的實例代碼

    Eclipse+Java+Swing實現(xiàn)學生成績管理系統(tǒng)的實例代碼

    這篇文章主要介紹了Eclipse+Java+Swing實現(xiàn)學生成績管理系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Mybatis實現(xiàn)分頁的注意點

    Mybatis實現(xiàn)分頁的注意點

    Mybatis提供了強大的分頁攔截實現(xiàn),可以完美的實現(xiàn)分功能。下面小編給大家分享小編在使用攔截器給mybatis進行分頁所遇到的問題及注意點,需要的朋友一起看看吧
    2017-07-07
  • Java中的CopyOnWriteArrayList深入解讀

    Java中的CopyOnWriteArrayList深入解讀

    這篇文章主要介紹了Java中的CopyOnWriteArrayList深入解讀,在 ArrayList 的類注釋上,JDK 就提醒了我們,如果要把 ArrayList 作為共享變量的話,是線程不安全的,需要的朋友可以參考下
    2023-12-12
  • Java對象深復制與淺復制實例詳解

    Java對象深復制與淺復制實例詳解

    這篇文章主要介紹了 Java對象深復制與淺復制實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • JAVA裝飾者模式(從現(xiàn)實生活角度理解代碼原理)

    JAVA裝飾者模式(從現(xiàn)實生活角度理解代碼原理)

    裝飾者模式可以動態(tài)地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活。這篇文章主要介紹了JAVA裝飾者模式的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Java后端接口中提取請求頭中的Cookie和Token的方法

    Java后端接口中提取請求頭中的Cookie和Token的方法

    在現(xiàn)代 Web 開發(fā)中,HTTP 請求頭(Header)是客戶端與服務器之間傳遞信息的重要方式之一,本文將詳細介紹如何在 Java 后端(以 Spring Boot 為例)中提取請求頭中的 Cookie 和 Token,并提供完整的代碼示例和優(yōu)化建議,需要的朋友可以參考下
    2025-01-01
  • springboot使用@data注解減少不必要代碼

    springboot使用@data注解減少不必要代碼

    這篇文章主要介紹了springboot使用@data注解減少不必要代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08

最新評論

通道| 佛山市| 精河县| 泸西县| 景洪市| 孝义市| 望江县| 房山区| 建瓯市| 筠连县| 察隅县| 舒兰市| 北票市| 忻州市| 锦州市| 五常市| 文水县| 广西| 平罗县| 宁晋县| 扎鲁特旗| 三明市| 嵊州市| 穆棱市| 沙河市| 治多县| 定结县| 合水县| 蓬溪县| 百色市| 萍乡市| 舒城县| 都兰县| 井研县| 公主岭市| 溧水县| 嵩明县| 洛隆县| 玉林市| 正定县| 江安县|