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
- Soto, Sofía Alejandra | Ing. Informática | 40.442.283
- Vilca, Sergio Esteban | Ing. Informática | 39.200.406
- * @Ingeniera: Perez Ibarra.
- * @Fecha: 8/11/2020.
- */
- /*
- Trabajo Práctico N°5 / Árboles (Tree) / Ejercicio 4
- --------------------- ------------- ------------
- * Objetivo General: Crear un árbol binario de busqueda con datos de personas.
- * Metodología Empleada: Se utiliza la clase árbol binario de busqueda para la creación del mismo.
- Los datos de persona registradas son Apellido, Nombre, DNI, estado civil.
- Las personas seran ordenadas por su DNI.
- * 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, - Random, -Iterator.
- * Clase principal: ArbolBinarioBusquedadePersonas.
- * Clases secundarias: Persona, BinarySearchTree, BinaryTree, Helper.
- */
- public class ArbolBinarioBusquedadePersonas {
- //------------------- Inicio método Run() --------------------//
- public void run() {
- BinarySearchTree<Persona>arbolPersonas= new BinarySearchTree<Persona>();
- int respuesta, cantidad=0;
- System.out.println("---Ejercicio 4 - Árbol Binario de Busqueda---");
- do {
- menu();
- respuesta=Helper.numeroEntero("Ingrese una opción ........: ");
- if ((respuesta==1)||(respuesta==2)) {
- cantidad= Helper.numeroEnteroPositivo("Cantidad de Personas entrantes: ");
- }
- switch(respuesta){
- case 1: AgregarPersonas(arbolPersonas,cantidad,1);
- break;
- case 2: AgregarPersonas(arbolPersonas,cantidad,2);
- break;
- case 3: leerArbol(arbolPersonas);
- System.out.println("\n-------------Fin del Ejercicio 4-------------");
- break;
- default: System.out.println("Ingrese una opción válida.....");
- break;
- }
- }while(respuesta!=3);
- }
- //----------- Menú - ArbolBinarioBusquedadePersonas ----------//
- public void menu(){
- System.out.println("----Personas Árbol Binario de Busqueda-----");
- System.out.println("1) Cargar personas......");
- System.out.println("2) Generar personas......");
- System.out.println("3) Mostrar Árbol Binario de Busqueda registrada........");
- } //Fin menu.
- //--------------- Cargar Árbol Binario Busqueda---------------//
- private void AgregarPersonas(BinarySearchTree<Persona> gente, int ultimo,int eleccion) {//Proceso de Cargar un Árbol.
- System.out.println("-------------Carga de personas-------------");
- for(int i=0;i<ultimo;i++) {
- if(eleccion==1) {
- System.out.println("Carga Persona Nº "+(i+1)+" :");
- gente.add(crearPersona());
- }else {
- gente.add(personaRandom());
- }
- }
- System.out.println("-------Fin de la Carga de personas--------");
- } //Fin AgregarPersonas.
- private Persona crearPersona() { //Carga Persona de forma manual.
- Integer dni;
- String nombre, apellido, estado;
- System.out.print("Ingrese Nombre..........:");
- nombre = Helper.sc.nextLine();
- System.out.print("Ingrese Apellido........: ");
- apellido = Helper.sc.nextLine();
- System.out.print("Ingrese el número de DNI:");
- while(true){
- dni= Helper.entero("");
- if ( Helper.dentroIntervalo(dni,10000000,43000000)==false) break;
- }
- System.out.print("Ingrese Estado Civil: (1-Soltera/o, 2-Casada/o, 3-Unión de hecho, 4-Separada/o, 5-Divorciada/o, 6-Viuda/o)\n");
- estado = ingresarEstado();
- return new Persona(nombre,apellido,dni,estado);
- } //Fin crearPersona.
- private Persona personaRandom(){ //Carga Persona con datos aleatorios.
- String[] nombres= {"Maria", "Jose", "Pablo", "Erica", "Leonel", "Natalia", "Miguel", "Luciana", "Diego", "Analia", "Marcelo", "Pamela", "Fabricio", "Ariadna", "Leandro", "Gabriela", "Felipe", "Guadalupe", "Daniel", "Melina"};
- String nombre= nombres[Helper.generadorAleatorio(nombres.length)];
- String[] apellidos= {"Perez", "Lopez", "Aguirre", "Gallardo", "Salazar", "Ibarra", "Cruz", "Burgos", "Velasquez", "Gareca", "Morales", "Farfan", "Gonzalez", "Espinoza"};
- String apellido= apellidos[Helper.generadorAleatorio(apellidos.length)];
- Integer dni= Helper.generadorAleatorio(10000000)+33000000;
- String[] ec= {"Soltera/o", "Casada/o", "Unión de hecho", "Separada/o", "Divorciada/o", "Viuda/o"};
- String estadoC= ec[Helper.generadorAleatorio(ec.length)];
- return new Persona (nombre, apellido, dni, estadoC);
- } //Fin personaRandom.
- private String ingresarEstado() {
- boolean valido;
- int opcion;
- String estado="";
- do {
- opcion=Helper.numeroEntero("Ingrese una opción ........: ");
- valido=true;
- switch(opcion){
- case 1: estado="Soltera/o";
- break;
- case 2: estado="Casada/o";
- break;
- case 3: estado="Unión de hecho";
- break;
- case 4: estado="Separada/o";
- break;
- case 5: estado="Divorciada/o";
- break;
- case 6: estado="Viuda/o";
- break;
- default: System.out.println("Ingrese una opción válida.....");
- valido=false;
- break;
- }
- }while(valido==false);
- return estado;
- }
- //------------- Mostrar Árbol Binario Busqueda ---------------//
- public void leerArbol(BinarySearchTree<Persona> arbolP){
- System.out.printf("\nÁrbol...... %s", arbolP.toString());
- System.out.print("\n------------Recorridos por Ordenes-----------\n Pre Orden.. \n ");
- arbolP.PreOrder();
- System.out.print("\n En Orden... \n ");
- arbolP.InOrder();
- System.out.print("\n Post Orden. \n ");
- arbolP.PostOrder();
- System.out.print("\n Descendente \n ");
- arbolP.DescendingOrder();
- } // Fin mostrarArbol.
- }
Add Comment
Please, Sign In to add comment