Java采用循环链表结构求解约瑟夫问题
本篇章节讲解Java采用循环链表结构求解约瑟夫问题的方法。分享给大家供大家参考。具体分析如下: 这是第一次java考试的试题,对于没看过链表的同学来说就不会做,现在回头看看,还真不难。 约瑟夫问题: 以下java版的答案: 复制代码 代码如下: import java.util.Scanner;
public class LinkNode { //单向链表的节点类 public int data; //存放节点值 public LinkNode next; //存放节点值的引用 public LinkNode(int k){ //构造方法 ,值为k的节点 data = k; next= null; } } class Josephus{ public static void printJosephus(int n,int s,int d){ int i=1; //创建长为n的循环列表 LinkNode q,tail; LinkNode head = new LinkNode(i); head.next = head ; tail = head; //第一个节点,尾巴和头在一起 while(i<n){ i++; q = new LinkNode(i); //增加一个新节点 q.next = head ; //节点的引用指向头 tail.next = q; //最后一个元素的引用指向了q tail = q; //那么最后一个元素就是q } int j= 0; //从s开始报数,依次输出出列人的编号 public static void main(String[] args) { 希望本文所述对大家的Java程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |