// 单向环形链表的创建和约瑟夫问题
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,形成环状
temp = node; // temp 后移
}
}
}
// 遍历当前环形链表
public void show(){
Java实现单向环形链表的创建,显示以及约瑟夫问题
最新推荐文章于 2022-12-13 21:24:12 发布
这篇博客介绍了如何使用Java创建单向环形链表,并解决约瑟夫问题。通过定义`SingleCircleList`类,实现链表的添加、显示和约瑟夫问题的求解。约瑟夫问题的解决方案包括设置起始节点、报数次数和链表节点数量,通过遍历链表并删除节点来模拟问题的过程。

最低0.47元/天 解锁文章
399

被折叠的 条评论
为什么被折叠?



