Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.*;
- public class Josephus<E> implements Queue<E> {
- E value;
- Josephus<E> link;
- Josephus<E> front, rear;
- Stack<E> s1 = new Stack<E>();
- Stack<E> s2 = new Stack<E>();
- public void display() {
- Josephus<E> n = s2.top;
- System.out.print("(front)");
- while (n != null) {
- System.out.print(" <-" + n.value);
- n = n.link;
- }
- System.out.println(" <-(rear)");
- }
- @Override
- public boolean add(E item) {
- while (s2.top != null)
- s1.push(s2.pop());
- s1.push(item);
- rear = s1.top;
- while (s1.top != null)
- s2.push(s1.pop());
- front = s2.top;
- return true;
- }
- public static void main(String[] args) {
- char input = 0;
- System.out.println("Josephus - I. Cuevas");
- do {
- try {
- Josephus<Integer> q = new Josephus<Integer>();
- Josephus<Integer> q1 = new Josephus<Integer>();
- int n = 0, m, i;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.print("\nHow many member of the group? ");
- n = Integer.parseInt(br.readLine());
- System.out.print("What is skip count? ");
- m = Integer.parseInt(br.readLine());
- for (i = 1; i <= n; i++)
- q.add(i);
- int l, k = 0;
- while (k != n - 1) {
- for (i = 1; i < m; i++)
- q.add(q.remove());
- l = q.remove();
- q1.add(l);
- k++;
- }
- System.out.println("You want to be in position #" + q.remove());
- System.out.print("\nAgain [Y/N]? ");
- input = br.readLine().charAt(0);
- } catch (Exception e) {
- System.out.println("Please enter an integer.");
- }
- } while (input != 'N');
- System.out.println("Good bye Good luck!");
- }
- @Override
- public int size() {
- return 0;
- }
- @Override
- public boolean isEmpty() {
- return false;
- }
- @Override
- public boolean contains(Object o) {
- return false;
- }
- @Override
- public Iterator<E> iterator() {
- return null;
- }
- @Override
- public Object[] toArray() {
- return null;
- }
- @SuppressWarnings("hiding")
- @Override
- public <E> E[] toArray(E[] a) {
- return null;
- }
- @Override
- public boolean remove(Object o) {
- return false;
- }
- @Override
- public boolean containsAll(Collection<?> c) {
- return false;
- }
- @Override
- public boolean addAll(Collection<? extends E> c) {
- return false;
- }
- @Override
- public boolean removeAll(Collection<?> c) {
- return false;
- }
- @Override
- public boolean retainAll(Collection<?> c) {
- return false;
- }
- @Override
- public void clear() {
- }
- @Override
- public boolean offer(E e) {
- return false;
- }
- @Override
- public E remove() {
- E item = s2.pop();
- front = s2.top;
- return item;
- }
- @Override
- public E poll() {
- return null;
- }
- @Override
- public E element() {
- return null;
- }
- @Override
- public E peek() {
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement