Este blog fue creado con la intencion de aportar a los alumnos una ayuda con los ejercicios de la carrera de ingenieria de sistemas LEVI VELASQUEZ PAZ

Blogroll

sábado, 16 de diciembre de 2017

RECURSIVIDAD

Share:

Crear un arbol se pueda insertar , pre orden, enorden, post orden eliminar , numeroc de nodos

package proyectoarboles;

public class NodoArbol {

    private int info;
    private NodoArbol hi;
    private NodoArbol hd;

    public NodoArbol() {
    }

    public NodoArbol(int x) {
        info = x;
        hi = null;
        hd = null;
    }

    public NodoArbol(int info, NodoArbol hi, NodoArbol hd) {
        this.info = info;
        this.hi = hi;
        this.hd = hd;
    }

    public int getInfo() {
        return info;
    }

    public void setInfo(int info) {
        this.info = info;
    }

    public NodoArbol getHi() {
        return hi;
    }

    public void setHi(NodoArbol hi) {
        this.hi = hi;
    }

    public NodoArbol getHd() {
        return hd;
    }

    public void setHd(NodoArbol hd) {
        this.hd = hd;
    }

}
package proyectoarboles;

/**
 *
 * @author MARCELINO
 */
public class ArbolBB {

    private NodoArbol raiz;

    public ArbolBB() {
        raiz = null;
    }

    public boolean esVacio() {
        return raiz == null;
    }

    public void inserta(int x) {
        raiz = inserta(x, raiz);
    }

    private NodoArbol inserta(int x, NodoArbol r) {
        if (r == null) {
            r = new NodoArbol(x);
        } else if (x < r.getInfo()) {
            r.setHi(inserta(x, r.getHi()));
        } else if (x > r.getInfo()) {
            r.setHd(inserta(x, r.getHd()));
        }
        return r;
    }

    public void enOrden() {
        enOrden(raiz);
        System.out.println();
    }

    private void enOrden(NodoArbol r) {
        if (r != null) {
            enOrden(r.getHi());
            System.out.print(r.getInfo() + " ");
            enOrden(r.getHd());
        }
    }

    public void postOrden() {
        postOrden(raiz);
        System.out.println();
    }

    private void postOrden(NodoArbol r) {
        if (r != null) {
            postOrden(r.getHi());
            postOrden(r.getHd());
            System.out.print(r.getInfo() + " ");
        }
    }

    public void preOrden() {
        preOrden(raiz);
        System.out.println();
    }

    private void preOrden(NodoArbol r) {
        if (r != null) {
            System.out.print(r.getInfo() + " ");
            preOrden(r.getHi());
            preOrden(r.getHd());
        }
    }

    public int buscarMax() {
        return buscarMax(raiz);
    }

    private int buscarMax(NodoArbol r) {
        int x;
        if (r.getHd() == null) {
            x = r.getInfo();
        } else {
            x = buscarMax(r.getHd());
        }
        return x;
    }

    public int buscarMin() {
        return buscarMin(raiz);
    }

    private int buscarMin(NodoArbol r) {
        int x;
        if (r.getHi() == null) {
            x = r.getInfo();
        } else {
            x = buscarMin(r.getHi());
        }
        return x;
    }

    public int contar() {
        return contar(raiz);
    }

    private int contar(NodoArbol r) {
        if (r == null) {
            return 0;
        } else {
            return 1 + contar(r.getHi()) + contar(r.getHd());
        }
    }

    public void eliminaMin() {
        raiz = eliminaMin(raiz);
    }

    private NodoArbol eliminaMin(NodoArbol r) {
        if (r.getHi() == null) {
            r = r.getHd();
        } else {
            r.setHi(eliminaMin(r.getHi()));
        }
        return r;
    }

    public void elimina(int x) {
        raiz = elimina(x, raiz);
    }

    private NodoArbol elimina(int x, NodoArbol r) {
        if (r != null) {
            if (x < r.getInfo()) {
                r.setHi(elimina(x, r.getHi()));
            } else if (x > r.getInfo()) {
                r.setHd(elimina(x, r.getHd()));
            } else if (r.getHi() == null) {
                r = r.getHd();
            } else if (r.getHd() == null) {
                r = r.getHi();
            } else {
                r.setInfo(buscarMin(r.getHd()));
                r.setHd(eliminaMin(r.getHd()));
            }
        }
        return r;
    }

    public int alturaArbol() {
        return alturaArbol(raiz);
    }

    private int alturaArbol(NodoArbol r) {
        int ahi, ahd;
        if (r == null) {
            return -1;
        } else {
            ahi = 1 + alturaArbol(r.getHi());
            ahd = 1 + alturaArbol(r.getHd());
            if (ahi > ahd) {
                return ahi;
            } else {
                return ahd;
            }
        }
    }
}
package proyectoarboles;


import java.util.Scanner;
public class ProyectoArboles {

    public static void main(String[] args) {
        // TODO code application logic here
        int op, x;
        Scanner entrada = new Scanner(System.in);
        ArbolBB abb = new ArbolBB();

        do {
            System.out.println("Menu Arboles");
            System.out.println("[1] Insertar Arbol");
            System.out.println("[2] Pre Orden");
            System.out.println("[3] En Orden");
            System.out.println("[4] Post Orden");
            System.out.println("[5] Eliminar");
            System.out.println("[6] Numero de nodos");
            System.out.println("[7] altura del Arbol");
            System.out.println("[8] Maximo del arbol");
            System.out.println("[9] Minimo del arbol");
            System.out.println("[10] Salir");
            System.out.print("Ingrese opcion : ");
            op = entrada.nextInt();

            switch (op) {
                case 1:
                    System.out.print(" Ingrese numero : ");
                    x = entrada.nextInt();
                    abb.inserta(x);
                    break;
                case 2:
                    System.out.println(" Pre Orden");
                    abb.preOrden();
                    break;
                case 3:
                    System.out.println(" En Orden");
                    abb.enOrden();
                    break;
                case 4:
                    System.out.println(" Post Orden");
                    abb.postOrden();
                    break;
                case 5:
                    System.out.print(" Ingrese numero a eliminar: ");
                    x = entrada.nextInt();
                    abb.elimina(x);
                    break;
                case 6:
                    System.out.println(" El numero de nodos del arbol" + abb.contar());
                    break;
                case 7:
                    System.out.println(" La altura del arbol es : " + abb.alturaArbol());
                    break;
                case 8:
                    System.out.println(" Maximo elemento" + abb.buscarMax());
                    break;
                case 9:
                    System.out.println(" Minimo elemento" + abb.buscarMin());
                    break;
            }
        } while (op != 10);
    }
}

Share:

Ejercicios de colas

package proyectopilacola;
import java.util.Scanner;

public class EjerciciosCola {

    Scanner lec=new Scanner(System.in);

    public void Doncella(){
        Cola<Doncella> cola=new Cola();
        int i, talla;
        String nombre;
   
        System.out.print("Ingrese numero de doncellas: ");
        i=lec.nextInt();
   
        for(int c=0;c<i;c++){
            System.out.print("Doncella "+(c+1)+": ");
            lec.nextLine();
            nombre=lec.nextLine();
            System.out.print("Talla: ");
            talla=lec.nextInt();
            Doncella doncella=new Doncella(nombre,talla);
            cola.encolar(doncella);
        }
   
        System.out.print("Ingrese la talla de Cenicienta: ");
        talla=lec.nextInt();
   
        boolean ver=true;
   
        if(cola.esVacia()){
            System.out.println("No ingreso a ninguna doncella");
        }
        else{
            while(!cola.esVacia()&&ver==true){
                Doncella cenicienta=cola.desencolar();
                if(talla==cenicienta.getTalla()){
                    System.out.println(cenicienta);
                    ver=false;
                }
            }
            if(ver)
                System.out.println("Cenicienta no encontrada");
        }
    }

    public void colaPersonas(){
        Cola<Persona> cola= new Cola();
        int i,edad;
        String nombre;
        System.out.print("Cuantas persona desea ingresar: ");
        i=lec.nextInt();
        for(int c=0;c<i;c++){
            System.out.print(".Nombre: ");
            lec.nextLine();
            nombre=lec.nextLine();
            System.out.print(".Edad: ");
            edad=lec.nextInt();
            Persona persona=new Persona(nombre, edad);
            cola.encolar(persona);
        }
        // 1: Infantes[0-6] || 2: Niños[7-14]    || 3: Adolescentes[15-18]
        // 4: Jovenes[19-35]|| 5: Adultos[36-50] || 6: Adultos Mayores[51]
        if(cola.esVacia())
            System.out.println("La cola esta vacia");
        else{
            Cola<Persona> separar[]=new Cola[6];
            i=0;
            while(i<6){
                separar[i]=new Cola();
                i++;
            }
       
            while(!cola.esVacia()){
                Persona nuevo= cola.desencolar();
                edad=nuevo.getEdad();
                if(edad>=0&&edad<=6){
                    separar[0].encolar(nuevo);
                }
           
                else if(edad>=7&&edad<=14){
                    separar[1].encolar(nuevo);
                }
                else if(edad>=15&&edad<=18){
                    separar[2].encolar(nuevo);
                }
                else if(edad>=19&&edad<=35){
                    separar[3].encolar(nuevo);
                }
                else if(edad>=36&&edad<=50){
                    separar[4].encolar(nuevo);
                }
                else if(edad>=51){
                    separar[5].encolar(nuevo);
                }
        }
   
        for(i=0; i<6;i++){
            if(i==0&&!separar[0].esVacia()){
                System.out.println("      Fila de Infante [0-6]");
                System.out.println("      *********************");
            }
            else if(i==1&&!separar[1].esVacia()){
                System.out.println("      Fila de Niños [7-14]");
                System.out.println("      ********************");
            }
            else if(i==2&&!separar[2].esVacia()){
                System.out.println("      Fila de Adolescentes [15-18]");
                System.out.println("      ****************************");
            }
            else if(i==3&&!separar[3].esVacia()){
                System.out.println("      Fila de Jovenes [19-35]");
                System.out.println("      ***********************");
            }
            else if(i==4&&!separar[4].esVacia()){
                System.out.println("      Fila de Adultos [36-50]");
                System.out.println("      ***********************");
            }
            else if(i==5&&!separar[5].esVacia()){
                System.out.println("        Fila de Adultos Mayores [51]");
                System.out.println("      ****************************");
            }
            separar[i].Mostrar();
            System.out.println();
        }
   
        }
    }


    public void eliminarEntero(){
        Cola<Integer> cola=new Cola();
        int num,i;
   
        System.out.print("¿Cuantos numeros ingresara? : ");
        i=lec.nextInt();
        for(int c=0;c<i;c++){
            System.out.print("Numero ["+(c+1)+"]:");
            num=lec.nextInt();
            cola.encolar(num);
        }
   
        System.out.print("Ingrese el numero a eliminar: ");
        num=lec.nextInt();
   
        if(cola.esVacia())
            System.out.println("La cola esta vacia");
        else{
            int c=0;
            while(c<i){
                int numero=cola.desencolar();
                if(numero!=num)
                    cola.encolar(numero);
                c++;
            }
            cola.Mostrar();
        }
    }

    public void invertirNumero(){
        Cola<Integer> cola=new Cola();
   
        int num;
   
        System.out.print("Ingrese numero: ");
        num=lec.nextInt();
   
        while(num!=0){
            cola.encolar(num%10);
            num=num/10;
        }
        String numero="";
        while(!cola.esVacia()){
            numero=numero+cola.desencolar();
        }
        num=Integer.parseInt(numero);
        System.out.println("El numero invertido es: "+num);
    }

    public void elementosComunes(){
        Cola<Integer> cola1=new Cola();
        Cola<Integer> cola2=new Cola();
        int i, num;
        System.out.print("¿Cuantos numeros para la cola 1: ");
        i=lec.nextInt();
        for(int c=0;c<i;c++){
            System.out.print("Numero ["+(c+1)+"]: ");
            num=lec.nextInt();
            cola1.encolar(num);
        }
        System.out.print("¿Cuantos numeros para la cola 2: ");
        i=lec.nextInt();
        for(int c=0;c<i;c++){
            System.out.print("Numero ["+(c+1)+"]: ");
            num=lec.nextInt();
            cola2.encolar(num);
        }
        Cola<Integer> aux=new Cola();
        while(!cola1.esVacia()){
            num=cola1.desencolar();
            int c=0;
            while(c<i){
                int num1=cola2.desencolar();
                if(num==num1){
                    i--;
                    System.out.println(": "+num);
                    break;
                }
                cola2.encolar(num1);
                c++;
            }
        }
   
    }
    public void UnirColas(){
        Cola<Integer> cola=new Cola();
   
        int i,num,c;
        System.out.print("¿Cuantas colas ingresara?: ");
        i=lec.nextInt();
        Cola<Integer> colas[]=new Cola[i];
        for(c=0;c<i;c++){
            colas[c]=new Cola();
        }
        for(c=0;c<i;c++){
            int o;
            System.out.println("   COLA ["+(c+1)+"]");
            System.out.println("  **********");
            System.out.print("¿Cuantas datos ingresara?: ");
            o=lec.nextInt();
            for(int p=0;p<o;p++){
                System.out.print("Numero ["+(p+1)+"]: ");
                num=lec.nextInt();
                colas[c].encolar(num);
            }
        }
   
        for(c=0;c<i;c++){
            while(!colas[c].esVacia()){
                cola.encolar(colas[c].desencolar());
            }
        }
   
        System.out.println("    COLA TOTAL   ");
        System.out.println("    **********   ");
        cola.Mostrar();
   
   
    }

    public void ColaPrioridad(){
        ColaPrioridad<Integer> cola= new ColaPrioridad();
        int num,i;
        double prioridad;
        int op;
   
        do{
   
            System.out.println("[1]  Encolar");
            System.out.println("[2]  Desencolar");
            System.out.println("[3]  Mostrar");
            System.out.println("[4]  <<REGRESAR");
            do{
                System.out.print("::: Ingrese Opcion: ");
                op=lec.nextInt();
            }while(op<1||op>4);
       
            switch(op){
                case 1:
                    System.out.print("¿Cuantos numeros desea ingresar?: ");
                    i=lec.nextInt();
   
                    for(int c=0;c<i;c++){
                        System.out.print(". Numero["+(c+1)+"]: ");
                        num=lec.nextInt();
                        System.out.print(". Prioridad: ");
                        prioridad=lec.nextDouble();
                        cola.encolarP(num, prioridad);
                    }
                    break;
                case 2:
                    if(!cola.esVacia())
                        System.out.println("Se desencolo: "+cola.desencolar());
                    else
                        System.out.println("La cola esta vacia");
                    break;
                case 3:
                    cola.Mostrar();
                    break;
            }
   
        }while(op!=4);
   
    }



}
Share:

Crear una 2 colas para luego comparar los elemtos comunes

   public static void main(String[] args) {
         Scanner sc=new Scanner(System.in);
        Cola<Integer> cola1=new Cola();
         Cola<Integer> cola2=new Cola();
        System.out.println("Ingrese total elementos para primera cola");
        int total=sc.nextInt();
        System.out.println("INGRESE ELEMENTOS PARA PRIMERA COLA");
        for(int i=0;i<total;i++){
            System.out.println("Elmento ["+(i+1)+"] : ");
            int num=sc.nextInt();
            cola1.encolar(num);
        }
        System.out.println("INGRESE ELEMENTOS PARA SEGUNDA COLA");
        int d=sc.nextInt();
        for(int i=0;i<d;i++){
            System.out.println("Elemento ["+(1+i)+"] : ");
            int numero=sc.nextInt();
            cola2.encolar(numero);
        }
        int elemento1;
        int elemento2;
        int c ;
        System.out.println("ELEMENTOS COMUNES");
   
           while(!cola1.esVacia()){
               elemento1=cola1.desencolar();
               c = 0;
               while(c<total){
                   elemento2=cola2.desencolar();
                   if(elemento1==elemento2){
                       total--;
                       System.out.println(";"+elemento1);break;
                   }                
                   cola2.encolar(elemento2);
                   c++;
               }
           }
   
 
    }
   

}
Share:

Elementos comunes

*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Ejercicio7;

import Ejercicio1.Cola;
import java.util.Scanner;

/**
 *
 * @author l9531
 */
public class ElementosComunes {
    public static void main(String[] args) {
         Scanner sc=new Scanner(System.in);
        Cola<Integer> cola1=new Cola();
         Cola<Integer> cola2=new Cola();
        System.out.println("Ingrese total elementos para primera cola");
        int total=sc.nextInt();
        System.out.println("INGRESE ELEMENTOS PARA PRIMERA COLA");
        for(int i=0;i<total;i++){
            System.out.println("Elmento ["+(i+1)+"] : ");
            int num=sc.nextInt();
            cola1.encolar(num);
        }
        System.out.println("INGRESE ELEMENTOS PARA SEGUNDA COLA");
        for(int i=0;i<total;i++){
            System.out.println("Elemento ["+(1+i)+"] : ");
            int numero=sc.nextInt();
            cola2.encolar(numero);
        }
        int elemento1;
        int elemento2;
        System.out.println("ELEMENTOS COMUNES");
       for(int i=0;!cola1.esVacia();i++){
           elemento1=cola1.desencolar();
           for(int j=0;!cola2.esVacia();j++){
            elemento2=cola2.desencolar();
            if(elemento1==elemento2){
                System.out.println(elemento1);
            }
           }
       
       
       }
       
   
        System.out.println(" ");
   
    }


}
Share:

Invertir cola

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Ejercicio5;

import Ejercicio1.Cola;
import java.util.Scanner;


public class InvertirCola {
     public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Cola<Integer> cola=new Cola();
         System.out.println("Ingrese cantidad de datos ");
         int can=sc.nextInt();
         for(int i=0;i<can;i++){
             System.out.println("Ingrese dato ["+1+i+"] fdg");
           int a=sc.nextInt();
             cola.encolar(a);
         }
         int a;
         System.out.println("Colas invertidas");
         while(!cola.esVacia()){
             a=cola.desencolar();
             System.out.println(a);                    
                       
         }
     

     
    }


}
Share:

Invertir numero en una cola

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Ejercicio4;

import Ejercicio1.Cola;
import java.util.Scanner;


/**
 *
 * @author l9531
 */
public class Invertir {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Cola<Integer> cola=new Cola();
        System.out.println("Ingrese numero");
        int numero=sc.nextInt();
        int con=numero;
        while(numero!=0){
            cola.encolar(numero%10);
            numero=numero/10;
        }
     
        System.out.println("numero palindrome ");
        while(con!=0){
            int c=cola.desencolar();
            System.out.println(c);
            numero=numero/10;
        }
     
     
    }
 


}
Share:

Buscar este blog

Con tecnología de Blogger.

Blog Archive

Blog Archive