Решение задачи joeshpus в java с использованием дважды кругового связанного списка
как сохранить все детализированные узлы и восстановить список в том же состоянии, что и раньше ?
Что я уже пробовал:
Я пробовал использовать стек для хранения всех удаленных элементов во время удаления, но не знаю, правильный ли это подход или нет.
public static String josephus(int m) { Node ptr1 = start, ptr2 = start; if (m > size) { throw new LinkedListException("No element left to remove"); } while (ptr1.next != ptr1) { // Find m-th node int count = 1; while (count != m) { ptr2 = ptr1; ptr1 = ptr1.next; count++; } /* Remove the m-th node */ System.out.println("Removing item : " + ptr1.data); stack.push(ptr1.data); ptr2.next = ptr1.next; ptr1 = ptr2.next; } return ptr1.data; } public static void setOriginal(int m) { Node ptr1 = start; while (!stack.isEmpty() && ptr1.next != ptr1) { // Find m-th node int count = 1; while (count != m) { ptr1 = ptr1.next; count++; } ptr1.data = stack.pop(); //System.out.println(ptr1.item); } }