(学习java)用java语言构造的循环链表解决约瑟夫问题
来源:互联网 发布:托福阅读做题步骤 知乎 编辑:程序博客网 时间:2024/06/01 09:21
//josephus问题 41个人1-3报数,数到3的自杀,最后剩余的2个人结点数据public class Josephus {public static void main(String[] args) {SLineList s = new SLineList();//定义人数mint m = 41;s.init();//建立一个有m个结点的循环链表for(int i=1;i<=m;i++){s.addNode(i);}s.josephus(3);s.list();}//定义结点类public static class Node{public int data;public Node next;public Node(){}public Node(int data){this.data = data;this.next = null;}}public static class SLineList{//定义头结点private Node head;//定义尾结点private Node rear;//定义链表长度private int size;public void init(){head = new Node();rear = new Node();head.next = rear;rear.next = head;size = 0;}//添加结点(尾插法)public void addNode(int data){Node node = new Node(data);if(head.next == rear){node.next = rear;head.next = node;size++;}else{Node temp = head;while(temp.next != rear){temp = temp.next;}node.next = rear;temp.next = node;size++;}}//循环链表的遍历public void list(){if(head.next == rear){System.out.println("空链表");System.out.println("链表的长度" + size);}else if(head.next.next == rear){System.out.println(head.next.data);System.out.println("链表的长度" + size);}else{Node temp = head;while(temp.next.next != rear){temp = temp.next;System.out.print(temp.data + "->");}temp = temp.next;System.out.println(temp.data);System.out.println("链表的长度" + size);}}//josephus问题 41个人1-3报数,数到3的自杀,最后剩余的2个人结点数据public void josephus(int n){int s = n-1;Node p = head;while(size != s){for(int i=0;i<s;i++){p = p.next;if(p == rear){p = p.next.next;}else if( p == head){p = p.next;}}if(p.next == rear){p = p.next.next;Node temp = p.next;p.next = p.next.next;temp = null;size--;}else if(p == head){p = p.next;Node temp = p.next;p.next = p.next.next;temp = null;size--;}else if(p == rear){p = p.next.next;Node temp = p.next;p.next = p.next.next;temp = null;size--;}else{Node temp = p.next;p.next = p.next.next;temp = null;size--;}}}}}
阅读全文
0 0
- (学习java)用java语言构造的循环链表解决约瑟夫问题
- C语言用循环链表解决约瑟夫问题
- Java用循环链表解决约瑟夫环问题(循环报数)
- 用循环链表解决约瑟夫问题
- 用循环链表解决约瑟夫问题
- C语言单向循环链表解决约瑟夫问题
- 循环链表解决约瑟夫问题
- 循环链表解决约瑟夫环问题
- 循环链表解决约瑟夫环问题
- 循环链表解决约瑟夫环问题
- POJ3750 循环链表解决约瑟夫问题
- 循环链表解决约瑟夫环问题
- 用循环链表解决约瑟夫循环
- 用循环链表解约瑟夫问题
- 用单向循环链表解决约瑟夫环问题
- 用个循环链表解决约瑟夫环问题
- [转]用单向循环链表解决约瑟夫环问题
- 用循环链表解决约瑟夫(josephu)问题
- JDK7与JDK8中HashMap的实现
- IT电影推荐《创:战记》
- SPOJDISUBSTR-Distinct Substrings
- 32. Longest Valid Parentheses
- Django报错——Migration admin.0001_initial is applied before its dependency users.
- (学习java)用java语言构造的循环链表解决约瑟夫问题
- Hibernate入门篇(1)
- spring aop log日志
- 学习之路的开始!!
- FPGA开发要懂得使用硬件分析仪调试——ILA
- JPA复习(一)——实体类注解
- 安装ubuntu遇到initramfs问题
- Spring Aop(九)——基于正则表达式的Pointcut
- Swift 自定义 UICollectionViewFlowLayout 实现横向布局分页