Universidad de Chile Facultad de Cs. Físicas y Matemáticas Departamento de Ciencias de la Computación CC3001-2: Algoritmos y Estructuras de Datos Auxiliar N◦4 Profesor: Patricio Poblete Auxiliar: Camilo Gómez P1. Programe en Java los siguientes métodos, considerando que se tiene la clase Nodo descrita a continuación: Class Nodo { public int valor; public Nodo sgte; } public void insertar(Nodo nodo): Inserta el nodo al final de la lista. public void insertarNsimo(Nodo nodo, int n): Inserta el nodo en la posición n de la lista. public void insertarOrdenado(Nodo nodo): Dada una lista ordenada, inserta el nodo en la posición tal que la lista se mantenga ordenada. public void ordenar(): Dada una lista desordenada, ordena sus elementos en orden creciente. public void removerDuplicados(): Dada una lista ordenada en orden creciente, remueve los nodos que se repiten. 1 Universidad de Chile Facultad de Cs. Físicas y Matemáticas Departamento de Ciencias de la Computación CC3001-2: Algoritmos y Estructuras de Datos P2. Programe en Java los siguientes métodos, considerando que se tiene la clase NodoDoble, que es una lista enlazada doble, donde cada nodo tiene referencias al nodo siguiente y al anterior: Class NodoDoble { public int valor; public Nodo sgte; public Nodo anterior; } public void insertar(Nodo nodo): Inserta el nodo al final de la lista. public void remover(Nodo nodo): Remueve el nodo de la lista. Si no está, no hace nada. public void recorrerAdelante(): Recorre la lista hacia adelante, imprimiendo el valor de cada nodo. public void recorrerAtras(): Ídem al anterior, pero hacia atrás. P3. Problema de Josephus. Hay n personas en un círculo esperando ser ejecutadas. Después que se ejecuta a la primera persona, se cuenta k-1 personas en el círculo (en orden) y la k-ésima persona es ejecutada nuevamente. La ejecución continua de la misma manera en el círculo, haciendo que el número de personas vaya disminuyendo en cada ejecución. Esto sucede hasta que queda solo una persona, y ésta es salvada. El objetivo es elegir el lugar correcto, dados n y k. 2