Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Estructura de Datos - Facultad de Ingeniería - Universidad Nacional de Jujuy
- =============================================================================
- */
- /**
- * @Autor: Equipo 5.1 Estructura de Datos.
- /* @Integrantes: | @Carrera: | @DNI:
- | |
- Camacho, Mauro Rodrigo | Ing. Informática | 41.654.090
- Cabana, Mario Ariel Fernando | Ing. Informática | 42.268.639
- Cruz, Facundo Emanuel | Ing. Informática | 41.609.573
- López, Juan Carlos | Ing. Informática | 41.400.550
- Machaca, Aldo Martin | Ing. Informática | 31.455.538
- * @Ingeniera: Perez Ibarra.
- * @Fecha: 11/10/2020.
- */
- /*
- Trabajo Práctico N°3 / Listas - Cola (Queue) / Ejercicio 3
- --------------------- --------------------- ------------
- * Objetivo General: Crear una función, método o subprograma que reciba como parametro 2 colas y devuelva una cola.
- * Metodología Empleada: Ingresar por consola o aleatoriamente valores para las 2 colas y unirlas en una nueva
- cola de forma sucesiva y alternadamente.
- Se toma un elemento de cada cola y se encola en una nueva.
- * El funcionamiento será a traves del entorno de desarrollo integrado Eclipse 2020-06(4.16)-(IDE for Java Developers),
- empleando el leguaje de programación Orientado a Objeto Java.
- * Api a utilizar. Paquete:- Java.Util / Clase:- Scanner y - Random.
- * Clase principal: UnirColasIntercalando.
- * Clases secundarias: Cola, Helper.
- */
- public class UnirColasIntercalando {
- //------------------- Inicio metodo Run() -------------------//
- public void run() {
- Cola<Character> cola1;
- Cola<Character> cola2;
- char cargar;
- int respuesta,dimencion=0;
- do {
- menu();
- respuesta=Helper.numeroEntero("Ingrese una opción ........ : ");
- if ((respuesta==1)||(respuesta==2)) {
- dimencion= Helper.numeroEnteroPositivo("Ingrese la dimención de ambas colas ......: ");
- cola1= new Cola(dimencion);
- cola2= new Cola(dimencion);
- }else{
- cola1= new Cola();
- cola2= new Cola();
- }
- switch(respuesta) {
- case 1 :
- for (int i=1; i<3; i++) {
- System.out.print("Cola "+i+" : ");
- cargar=Helper.respuestaSN(" ¿Desea generar caracteres automaticamente?(S/N)");
- comoCargar(cargar, i, cola1, cola2,dimencion);
- }
- MostrarColas(cola1,cola2);
- break;
- case 2 :
- CargarRandomCola(cola1,dimencion);
- CargarRandomCola(cola2,dimencion);
- MostrarColas(cola1,cola2);
- break;
- case 3: System.out.println(" -----> Fin del Ejercicio 3 <----- ");//Fin del programa.
- break;
- default: System.err.println("Seleccione una opción valida............");
- break;
- } //Fin switch.
- } while (respuesta!=3);
- } //Fin del metodo Run().
- //-------------- Menú - UnirColas -------------//
- public void menu(){
- System.out.println("-------------- Menú EJERCICIO 3 -------------------");
- System.out.println("1) Cagar cada Cola de manera Individual .....");
- System.out.println("2) Cargar Colas de manera random ............");
- System.out.println("3) Salir del Ejercicio 3 ....................");
- } //Fin menu.
- //-------------------Colas - Cargar--------------------//
- public void comoCargar(char rta,int turno, Cola<Character> queue1,Cola<Character> queue2,int dimencion) { // Tipo de carga.
- if (rta=='N') {
- if (turno==1) {
- CargarCaracter(queue1,dimencion);
- }else {
- CargarCaracter(queue2,dimencion);
- }
- }else {
- if (turno==1) {
- CargarRandomCola(queue1,dimencion);
- }else {
- CargarRandomCola(queue2,dimencion);
- }
- }
- } // Fin como cargar.
- public void CargarCaracter(Cola <Character> colaCaracteres,int dimencion) { // Módulo cargar caracter por consola.
- char valor;
- for (int j=0; j<dimencion; j++) {
- valor=Helper.validarLetra();
- colaCaracteres.offer(valor);
- }
- } //Fin cargar por consola.
- public void CargarRandomCola(Cola<Character> randomcola,int dimencion) { // Módulo cargar caracter aleatoriamente.
- char letrarandom;
- for (int j=0; j<dimencion;j++) {
- letrarandom = Helper.letraRandom();
- randomcola.offer(letrarandom);
- }
- } // Fin cargar random.
- //-------------Colas - Unir (Ejercicio 3)--------------//
- public Cola<Object> unirColasIntercalando(Cola<?> queque1 ,Cola<?> queque2){ // Módulo unión de dos Colas sucesivas y alternadamente.
- Cola<Object> auxiliar = new Cola<Object> (queque1.size()+queque2.size());
- while(!queque1.isEmpty()&& !queque2.isEmpty() ){
- auxiliar.offer(queque1.remove());
- auxiliar.offer(queque2.remove());
- }
- return auxiliar;
- } //Fin unión queue.
- public void MostrarColas(Cola<Character> cola1,Cola<Character> cola2) {
- Helper.mostrarCola(cola1,"Cola 1 : ");
- Helper.mostrarCola(cola2,"Cola 2 : ");
- Helper.mostrarCola(unirColasIntercalando(cola1,cola2),"La unión Intercalada entre Colas 1 y 2 : ");
- }
- } //Fin de la clase.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement