`

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics