用java实现链表并解决约瑟夫环问题
2013-08-05 10:38
567 查看
package 栈和队列; /** * * 数到3的人出列 ,看最后能剩下谁 * @author wangmeng * */ class Node { public Object data; public Node next; public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Node() { super(); // TODO Auto-generated constructor stub } public Node(Object data, Node next) { super(); this.data = data; this.next = next; } } public class 用java实现链表并解决约瑟夫环问题 { public static void main(String[] args) { Node node1 = new Node("1",null); Node node2 = new Node("2",null); Node node3 = new Node("3",null); Node node4 = new Node("4",null); Node node5 = new Node("5",null); Node node6 = new Node("6",null); Node node7 = new Node("7",null); Node header = node1; node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; node5.next = node6; node6.next = node7; node7.next = node1; 检测(header); } private static void 检测(Node header) { Node n = header; Node lastOne ;//表示上一个节点 int count = 1 ; System.out.print("依次出列的顺序为:"); while(n != n.next){//最后环中只剩下一个人,那肯定是它的下一个就是它本身 即 n=n.next lastOne = n; n = n.next; count ++ ; if(count == 3){//若数到3,出列 lastOne.next = n.next;//上一个的节点的下一个就是当前的下一个 即lastOne.next = n.next; count = 0;//count清 0 System.out.print(n.data + " ");//打印出列的元素 } } System.out.println(); System.out.println("最后剩下的是:" + n.data); } } 运行结果: 依次出列的顺序为:3 6 2 7 5 1 最后剩下的是:4
相关文章推荐
- Java语言解决约瑟夫环问题(链表实现)
- 循环列表的Java实现,解决约瑟夫环问题
- 单链表是否有环的问题解决与讨论(java实现)
- 循环列表的Java实现,解决约瑟夫环问题
- PHP实现的基于单向链表解决约瑟夫环问题示例
- PHP实现单向链表解决约瑟夫环问题
- 使用链表实现环结构以解决约瑟夫环问题
- 约瑟夫环问题(丢手帕游戏)Java 链表实现
- 循环链表 CircleList的实现并解决约瑟夫环问题
- Java语言解决约瑟夫环问题(ArrayList实现)
- 自己实现集合框架(五):利用单链表解决约瑟夫环问题
- 海康SDK-javademo实现报错问题解决
- 使用Tomcat实现Java连接池(解决main中不能够调用问题)
- 营救公主(Java实现A*算法解决迷宫问题)
- 位置距离[置顶] 营救公主(Java实现A*算法解决迷宫问题)
- java 实现新浪微博内容计数器 Java问题通用解决代码
- 在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- 结构体指针实现插入排序和解决约瑟夫环问题
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- Java解决TopK问题(使用集合和直接实现)