Josephus Problem: Build the Circular Linked List - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

Josephus Problem: Build the Circular Linked List

Description:

Josephus Problem: Build the Circular Linked List public class Josephus {private static class Node {int val; Node next;} public static void main(String[] args) – PowerPoint PPT presentation

Number of Views:305
Avg rating:3.0/5.0
Slides: 64
Provided by: KevinW182
Category:

less

Transcript and Presenter's Notes

Title: Josephus Problem: Build the Circular Linked List


1
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
null
0
head
2
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
null
1
head
3
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
1
head
4
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
1
tail
head
5
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
1
tail
head
6
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
0
null
1
tail
head
7
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
null
1
tail
head
8
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
1
tail
head
9
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
1
tail
head
10
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
1
tail
head
11
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
1
tail
head
12
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
0
1
tail
null
head
13
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
3
1
tail
null
head
14
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
3
1
tail
head
15
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
3
1
tail
head
16
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
3
1
tail
head
17
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
x
2
3
1
tail
head
18
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
x
3
1
tail
0
head
null
19
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
x
3
1
tail
4
head
null
20
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
x
3
1
tail
4
head
21
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
x
3
1
tail
4
head
22
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
x
3
1
tail
4
head
23
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
tail
5
24
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
tail
5
6
25
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
tail
5
6
7
26
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
tail
5
8
6
7
27
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
9
tail
5
8
6
7
28
Josephus Problem Build the Circular Linked List
public class Josephus private static class
Node int val Node next
public static void main(String args)
int M Integer.parseInt(args0) int N
Integer.parseInt(args1) Node head new
Node() head.val 1 head.next
head Node tail head for (int i
2 i lt N i) Node x new Node()
x.val i x.next head
tail.next x tail x
2
3
1
4
head
9
tail
5
8
6
7
Done Building
29
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
9
5
8
6
7
N
9
M
5
java Josephus 5 9
30
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
N
9
M
5
java Josephus 5 9
31
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
N
9
M
5
java Josephus 5 9
32
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
1
N
9
M
5
java Josephus 5 9
33
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
1
N
9
M
5
java Josephus 5 9
34
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
2
N
9
M
5
java Josephus 5 9
35
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
2
N
9
M
5
java Josephus 5 9
36
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
3
N
9
M
5
java Josephus 5 9
37
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
3
N
9
M
5
java Josephus 5 9
38
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
4
N
9
M
5
java Josephus 5 9
39
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
4
N
9
M
5
java Josephus 5 9
40
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
i
5
N
9
M
5
java Josephus 5 9
41
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5
8
6
7
N
9
M
5
java Josephus 5 9 5
42
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
5 is effectively deleted
5
8
6
7
N
9
M
5
java Josephus 5 9 5
43
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
N
9
M
5
java Josephus 5 9 5
44
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
1
N
9
M
5
java Josephus 5 9 5
45
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
1
N
9
M
5
java Josephus 5 9 5
46
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
2
N
9
M
5
java Josephus 5 9 5
47
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
2
N
9
M
5
java Josephus 5 9 5
48
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
3
N
9
M
5
java Josephus 5 9 5
49
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
3
N
9
M
5
java Josephus 5 9 5
50
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
4
N
9
M
5
java Josephus 5 9 5
51
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
4
N
9
M
5
java Josephus 5 9 5
52
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
i
5
N
9
M
5
java Josephus 5 9 5
53
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
N
9
M
5
java Josephus 5 9 5 1
54
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
1
4
x
9
8
6
7
N
9
M
5
java Josephus 5 9 5 1
55
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
4
x
9
8
6
7
N
9
M
5
java Josephus 5 9 5 1
56
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
4
x
9
8
6
7
N
9
M
5
java Josephus 5 9 5 1 7
57
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
3
x
9
8
6
N
9
M
5
java Josephus 5 9 5 1 7 4
58
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
x
9
8
6
N
9
M
5
java Josephus 5 9 5 1 7 4 3
59
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
x
9
8
N
9
M
5
java Josephus 5 9 5 1 7 4 3 6
60
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
2
x
8
N
9
M
5
java Josephus 5 9 5 1 7 4 3 6 9
61
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
x
8
N
9
M
5
java Josephus 5 9 5 1 7 4 3 6 9 2
62
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
x
8
N
9
M
5
java Josephus 5 9 5 1 7 4 3 6 9 2
63
Josephus Problem Kill Off Every Mth Person
Node x tail while (x ! x.next) for (int
i 1 i lt M i) x x.next
System.out.print(x.next.val " ") x.next
x.next.next System.out.println(x.val)
x
Survivor
8
N
9
M
5
java Josephus 5 9 5 1 7 4 3 6 9 2 8
Write a Comment
User Comments (0)
About PowerShow.com