// 单向环形链表的创建和约瑟夫问题 public class Joseph { public static void main(String[] args) { SingleCircleList scl = new SingleCircleList(); scl.add(5); scl.Joseph(1,2,5); } } class SingleCircleList{ // 单向环形链表的创建 Node2 first = null; // 创建头节点,用于指向链表的第一个元素 public void add(int num){ // 接收一个数值,表示添加几个节点 if(num < 1){ return; } Node2 temp = null; // 辅助指针节点 for (int i = 1; i <= num; i++) { Node2 node = new Node2(i); // 当添加的是第一个节点时,将它的 next指向自己,形成环状 if(i == 1){ first = node; first.next = first; temp = first; // 辅助指针指向第一个节点,后面用辅助指针帮助创建链表,first不动 }else{ temp.next = node; // temp 始终指向链表的最后一个节点, next指向新节点,先将新节点加入链表 node.next = first; // 新节点的 next 指向第一个first,形成环状
Java实现单向环形链表的创建,显示以及约瑟夫问题
最新推荐文章于 2022-12-13 21:24:12 发布
这篇博客介绍了如何使用Java创建单向环形链表,并解决约瑟夫问题。通过定义`SingleCircleList`类,实现链表的添加、显示和约瑟夫问题的求解。约瑟夫问题的解决方案包括设置起始节点、报数次数和链表节点数量,通过遍历链表并删除节点来模拟问题的过程。
摘要由CSDN通过智能技术生成