`

java用链表解约瑟夫环问题

    博客分类:
  • java
阅读更多
   
1到20的数围成一个圈,隔两个取出一个,直到所有的数都被取出为止,求取出的数的顺序:package org.joseff.test;public class link {private int value;private link next;private link previous;public link getprevious() {return previous;}public void setprevious(link previous) {this.previous = previous;}public link(int value){this.value = value;}public int getvalue() {return value;}public void setvalue(int value) {this.value = value;}public link getnext() {return next;}public void setnext(link next) {this.next = next;}public link remove(){system.out.println(this.getvalue());link p = this.getprevious();link n = this.getnext();p.setnext(n);n.setprevious(p);return n;}}package org.joseff.test;public class test {public static void main(string[] args) {//initialize the link nodes.link t1 = new link(1);link first = t1;for(int i = 2 ; i <= 20 ; i++ ){link link = new link(i);t1.setnext(link);link.setprevious(t1);t1 = link;}t1.setnext(first);first.setprevious(t1);print(first);}public static void print(link link){//left the last nodeif(link.getnext() == link){system.out.println(link.getvalue() + " ");return;}link tmp = link;for(int i = 1 ; i < 3 ; i++ ){tmp = tmp.getnext();}link n = tmp.remove();print(n);}}结果:3 、6 、9 、12 、15 、18 、1 、5 、10 、14 、19 、4 、11 、17 、7 、16 、8 、2 、13 、20
  
0
0
分享到:
评论

相关推荐

    不用链表解约瑟夫

    不使用链表解决约瑟夫问题

    java编写的循环链表来实现约瑟夫环

    循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释

    多瑟夫环问题单向循环链表

    多瑟夫环问题单向循环链表 在计算机科学中,多瑟夫环问题是一种经典的问题,描述的是一个编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码。该问题的解决可以使用单向循环链表来实现。下面是多瑟夫...

    用循环链表实现约瑟夫环问题

    使用c语言中的循环链表及结构体实现约瑟夫环问题

    java链表实现约瑟夫问题

    约瑟夫问题,通过类实现的链表,并加以改进,做成双向链表

    瑟夫环问题及其链表实现

    约瑟夫问题:编号为1,2,3,……,n的n个人按顺时针方向围坐一圈。任选两个正整数作为报数下限s和报数上限m,从第一个人开始按顺时针方向自s开始顺序报数,报到m时停止报数。报m的人出列,从他在顺时针方向上的下一...

    Java用链表实现的计算器程序.rar_JAVA计算器链表_计算器链表

    这个"Java用链表实现的计算器程序"很可能是设计为一个解析表达式并进行计算的系统。链表在这里的角色可能是用来表示数学表达式的结构。例如,每个节点可能包含一个运算符(如加、减、乘、除)或者一个数字,通过这种...

    瑟夫环基于数据结构链表

    数据结构的课设,瑟夫环,通过简单的输入设置,来设定开始位置,报数大小,从而不断将报到的人移除

    用链表表示循环链表的约瑟夫环的问题的源代码

    以下是一个用C语言实现约瑟夫环问题的基本框架: ```c #include #include // 定义链表节点结构体 typedef struct Node { int data; struct Node* next; } Node; // 创建新节点 Node* createNode(int data) { ...

    用链表实现线性表java

    本篇将深入探讨如何用链表来实现线性表,并通过提供的`ChainList.java`和`ListInterface.java`文件来理解其实现细节。 首先,线性表具有顺序访问的特点,其元素可以通过索引进行访问。链表是一种非连续存储结构,每...

    瑟夫环及其链表实现

    瑟夫环问题的c++实现,希望能解决这一难题,对大家有所帮助

    JAVA双向链表反转实现

    在Java编程中,双向链表(Double Linked List)是一种数据结构,它允许我们在列表的任一侧进行插入和删除操作。与单向链表不同,双向链表中的每个节点都有两个指针,一个指向前一个节点,另一个指向后一个节点。这...

    java实现链表操作

    用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。

    用链表表示循环链表的约瑟夫环的问题的源代码的报告

    《用链表表示循环链表的约瑟夫环问题的源代码分析》 约瑟夫环问题是一个经典的计算机科学问题,通常用链表来解决。本文将深入探讨如何使用链表来实现循环链表的约瑟夫环问题,并提供相关的源代码。 一、问题概述 ...

    java 单链表和双向链表的实现

    本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...

    Java版链表模板类

    循环链表与普通链表的主要区别在于最后一个节点指向了头节点,形成一个闭合的环,这在处理循环遍历或某些特定算法时非常方便。 首先,让我们详细解析`CList.java`和`CList2.java`这两个文件可能包含的内容。`CList`...

    JAVA实现链表_双向链表

    JAVA实现链表_双向链表

    java链表 个人总结

    Java链表是编程中一种基础且重要的数据结构,它在许多场景下有着广泛的应用。本文将结合个人学习心得,深入探讨Java链表的核心概念、实现方式以及与其他编程语言的互通性。 首先,链表是一种线性数据结构,与数组...

    java 数据结构 链表

    了解并熟练掌握链表的原理和操作,对于提升Java编程能力和解决复杂问题的能力至关重要。 总结来说,Java中的链表是一种灵活的数据结构,适用于动态数据集的管理,提供了插入、删除和遍历等基本操作。理解链表的工作...

Global site tag (gtag.js) - Google Analytics