Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main1 {
- static final int MAX_SIZE = 5;
- public static void main(String[] args) {
- CircularQueue queue = new CircularQueue(MAX_SIZE);
- String[] options = {
- "Ingresar número",
- "Eliminar primero en la cola",
- "Generar números aleatorios",
- "Mostrar elementos guardados",
- "Eliminar múltiplos"
- };
- Menu menu = new Menu(options);
- Integer inputNumber;
- Integer option = 0;
- do {
- option = menu.getOption();
- switch(option) {
- case 1:
- //Ingreso de un número por teclado implementado la clase Helper
- try {
- inputNumber = Helper.getInt("Ingrese un número: ");
- queue.enqueue(inputNumber);
- System.out.println("Número almacenado");
- queue.print();
- } catch(RuntimeException e) {
- System.err.println("No se pudo realizar la acción " + e);
- }
- Helper.pressEnterKeyToContinue();
- break;
- case 2:
- //Elimina el número que está primero en la cola
- try {
- Integer numberDequeue = queue.dequeue();
- System.out.println("Número que salió: " + numberDequeue);
- queue.print();
- } catch(RuntimeException e) {
- System.err.println("No se pudo realizar la acción " + e);
- }
- Helper.pressEnterKeyToContinue();
- break;
- case 3:
- //Genera números aleatorios implementado la clase Helper
- queue = new CircularQueue(MAX_SIZE);
- for(int i = 0; i < MAX_SIZE; i++) {
- queue.enqueue(Helper.randomInt(1, 500));
- }
- System.out.println("Números generados");
- queue.print();
- Helper.pressEnterKeyToContinue();
- break;
- case 4:
- //Muestra los elementos de la cola segun orden de ingreso
- queue.print();
- Helper.pressEnterKeyToContinue();
- break;
- case 5:
- //Llamada al método que resuelve lo que solicita el ejercicio
- System.out.println("Se suprimiránn todas las apariciones de los múltiplos de un número");
- inputNumber = Helper.getInt("Ingrese dicho número: ");
- queue = deleteMultiples(queue,inputNumber);
- queue.print();
- Helper.pressEnterKeyToContinue();
- break;
- }
- }while(option !=0);
- System.out.println("Fin del programa");
- }
- public static CircularQueue deleteMultiples(CircularQueue queue, Integer number) {
- if(queue.isEmpty()) {
- throw new RuntimeException("Error: La cola está vacía");
- }
- //Se crea una cola auxiliar donde se copiaran los elementos que
- //no sean multiplos
- CircularQueue queueReturn = new CircularQueue(MAX_SIZE);
- int i = 0;
- //Head apunta al primer elemento de la cola y será el indice
- //a partir del cual se empezará a recorrer la misma
- int index = queue.getHead();
- while(i < queue.getActualSize()) {
- Integer numberInQueue = queue.getElements()[index];
- if(numberInQueue % number != 0) {
- //El numero que no es multiplo se enconla en la cola a retornar
- queueReturn.enqueue(numberInQueue);
- }else {
- System.out.println(numberInQueue + " es multiplo");
- }
- index = queue.next(index);
- i++;
- }
- //Si las dos colas terminan con el mismo tamaño, entones no se
- //descarto ningun elemento
- if(queue.getActualSize() == queueReturn.getActualSize()) {
- System.out.println("No hubo modificaciones en la cola");
- }
- return queueReturn;
- }
- }
Add Comment
Please, Sign In to add comment