import java.util.Scanner;
public class YueSeFu {
class Node {
int data;//数据域
Node next;//指针域
public Node(int data) {
this.data = data;
}
}
public Node head;
public Node p;
public void add(int data) {
if (head == null) {
head = new Node(data);
p = head;
} else {
p.next = new Node(data);
p = p.next;
p.next = head;
}
}
public void print(Node node) {
if (node == null) {
return;
}
p = node;
while (p != null) {
System.out.println(p.data);
p = p.next;
}
}
public static void main(String[] args) {
YueSeFu list = new YueSeFu();
int n, m, k;
System.out.println("请输入总人数n,从m开始数,数到k出列");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
k = sc.nextInt();
for (int i = 0; i < n; i++) {
list.add(i + 1);
}
// list.print(list.head);//从head节点开始遍历输出
Node q = list.head;
int count = 0, j = 0;//count为记录出圈的人数,
for (; j < k - 1; j++) {
q = q.next;
}
int i = 1;//i为记录数的次数
while (count != n) {
if (q.data != 0) {
if (i % m == 0) {
count++;
System.out.print("第" + count);
System.out.println("出列的人的序号为" + q.data);
q.data = 0;
}
q = q.next;
i++;
} else
q = q.next;
}
}
}
JAVA链表实现约瑟夫环
最新推荐文章于 2022-10-04 12:02:20 发布