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:

Crear una cola donde se pueda ingresar un numero y el palindrome

/*
 * 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:

Todas las doncellas del reino hacen cola para probarse el zapato de la cenicienta. Si la talla es x diga ¿Quién es la cenicienta?

*
 * 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 Ejercicio1;
import java.util.Scanner;


/**
 *
 * @author INGENIERIA
 */
public class ProyectoColas {

    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    Cola<Doncella> cola=new Cola();
    Doncella doncella;
    String nombre;
    boolean encontrado=false;
    int talla;
    int x=0;
    int da;
    System.out.print("Ingrese numero de doncellas");
    int num=sc.nextInt();
    while(x<num){
        System.out.print("Nombre");
        nombre=sc.next();
        System.out.println("Talla");
        talla=sc.nextInt();
        doncella=new Doncella(nombre, talla);
        cola.encolar(doncella);
        x++;
    }
    String no = "";
    System.out.println("Ingrese talla a buscar");
    talla=sc.nextInt();
    while(!cola.esVacia() && !encontrado){
       doncella=cola.desencolar();
       if(doncella.getTalla()==talla){
        no=doncella.getNombre();
           encontrado=true;
       }
    }
    if(encontrado){
        System.out.println("La doncella es "+no);
    }else{
        System.out.println("No se encontro la doncella");
    }
    }

}


CLASE DONCELLA
/*
 * 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 Ejercicio1;

/**
 *
 * @author INGENIERIA
 */
public class Doncella {
   private String nombre;
    private int talla;
    public Doncella(String nombre, int talla){
        this.nombre=nombre;
        this.talla=talla;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getTalla() {
        return talla;
    }

    public void setTalla(int talla) {
        this.talla = talla;
    }
    
}





Share:

Crear una cola donde se pueda agregar, eliminar y mostra

Nodo Generico

public class Nodo<T> {

    private T info;
    private Nodo siguiente;

    public Nodo(T info) {
        this.info = info;
        siguiente = null;
    }

    public Nodo(T info, Nodo<T> siguiente) {
        this.info = info;
        this.siguiente = siguiente;
    }

    public T getInfo() {
        return info;
    }

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

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo<T> siguiente) {
        this.siguiente = siguiente;
    }
}

Clase

Cola Generica

public class Cola<T> {

    private Nodo<T> primero;
    private Nodo<T> ultimo;

    public Cola() {
        primero = null;
        ultimo = null;
    }

    public void encolar(T x) {
        Nodo<T> nuevo = new Nodo(x, null);
        if (primero == null) {
            primero = nuevo;
        } else {
            ultimo.setSiguiente(nuevo);
        }
        ultimo = nuevo;
    }

    public T desencolar() {
        T x;
        Nodo<T> temp;
        x = primero.getInfo();
        temp = primero;
        primero = primero.getSiguiente();
        temp = null;
        if (primero == null) {
            ultimo = null;
        }
        return x;
    }

    public void mostrar() {
        Nodo<T> p = primero;
        while (p != null) {
            System.out.println(p.getInfo());
            p = p.getSiguiente();
        }
    }

    public boolean esVacia() {
        if (primero == null) {
            return true;
        } else {
            return false;
        }
    }
}

Programa

que usa la cola:

import java.util.Scanner;

public class ProyectoColasGenericas {

    public static void main(String[] args) {
        int op, x;
        Scanner entrada = new Scanner(System.in);
        Cola<Integer> cola = new Cola();

        do {
            System.out.println("Menu Colas");
            System.out.println("[1] Encolar");
            System.out.println("[2] Desencolar");
            System.out.println("[3] Mostrar");
            System.out.println("[4] Salir");
            System.out.print("Ingrese opcion : ");
            op = entrada.nextInt();
            switch (op) {
                case 1:
                    System.out.print(" Ingrese numero : ");
                    x = entrada.nextInt();
                    cola.encolar(x);
                    break;
                case 2:
                    if (!cola.esVacia()) {
                        x = cola.desencolar();
                        System.out.println("Dato desencolado : " + x);
                    } else {
                        System.out.println("Lac cola esta vacia");
                    }
                    break;
                case 3:
                    System.out.println(" Datos de la cola");
                    cola.mostrar();
                    break;
            }
        } while (op != 4);
    }
}
Share:

modificar, eliminar , agregar y mostrar en una pila

package proyectopilas;

public class Nodo<T> {

    private T info;
    private Nodo siguiente;

    public Nodo(T info) {
        this.info = info;
        siguiente = null;
    }

    public Nodo(T info, Nodo<T> siguiente) {
        this.info = info;
        this.siguiente = siguiente;
    }

    public T getInfo() {
        return info;
    }

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

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo<T> siguiente) {
        this.siguiente = siguiente;
    }
}
package proyectopilas;

public class Pila<T> {

    private Nodo<T> primero;

    public Pila() {
        primero = null;
    }

    public void push(T x) {
        Nodo<T> nuevo = new Nodo(x);
        nuevo.setSiguiente(nuevo);
        primero = nuevo;
    }

    public T pop() {
        T x;
        Nodo<T> temp;
        x = primero.getInfo();
        temp = primero;
        primero = primero.getSiguiente();
        temp = null;
        return x;
    }

    public boolean esVacia() {
        return primero == null;
    }

    public void mostrar() {
        Nodo<T> p = primero;
        while (p != null) {
            System.out.println(p.getInfo());
            p = p.getSiguiente();
        }
    }
}
package proyectopilas;


import java.util.Scanner;
public class ProyectoPilas {

    public static void main(String[] args) {
        // TODO code application logic here
        int op, x;
        Scanner entrada = new Scanner(System.in);
        Pila<Integer> pila = new Pila();
        do {
            System.out.println("Menu Pilas");
            System.out.println("[1] Agregar");
            System.out.println("[2] Quitar");
            System.out.println("[3] Mostrar");
            System.out.println("[4] Salir");
            System.out.print("Ingrese opcion : ");
            op = entrada.nextInt();
            switch (op) {
                case 1:
                    System.out.print(" Ingrese numero : ");
                    x = entrada.nextInt();
                    pila.push(x);
                    break;
                case 2:
                    if (!pila.esVacia()) {
                        x = pila.pop();
                        System.out.println("Dato desenpilado : " + x);
                    } else {
                        System.out.println("Lac pila esta vacia");
                    }
                    break;
                case 3:
                    System.out.println(" Datos de la pila");
                    pila.mostrar();
                    break;
            }
        } while (op != 4);
    }

}

Share:

Crear una lista simple para agregar elementos


public class Nodo {

    private double info;
    private Nodo siguiente;

    public Nodo() {
        siguiente = null;
    }

    public Nodo(double x) {
        siguiente = null;
        info = x;
    }

    public Nodo(double x, Nodo siguiente) {
        info = x;
        this.siguiente = siguiente;

    }

    public double getInfo() {
        return info;
    }

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

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }
}

public class ListaEnlazada {

    protected Nodo primero;

    public ListaEnlazada() {
        primero = null;
    }

    public Nodo getPrimero() {
        return primero;
    }

    public void setPrimero(Nodo primero) {
        this.primero = primero;
    }

    public void insertarAlInicio(double x) {
        Nodo nuevo = new Nodo(x);
        nuevo.setSiguiente(primero);
        primero = nuevo;
    }

    public void insertaAlFinal(double x) {
        Nodo nuevo = new Nodo(x);
        Nodo p;

        if (primero == null) {
            primero = nuevo;
        } else {
            p = primero;
            while (p.getSiguiente() != null) {
                p = p.getSiguiente();
            }
            p.setSiguiente(nuevo);
        }
    }

    public void mostrar() {
        Nodo p = primero;
        while (p != null) {
            System.out.println(p.getInfo());//mostramos el dato
            p = p.getSiguiente();
        }
    }

    public String toString() {
        String contenido = "";
        Nodo p = primero;
        while (p != null) {
            contenido += p.getInfo() + "\n"; //guardamos el dato
            p = p.getSiguiente();
        }

        return contenido;
    }

}

public class ProyectoListasEnlazadas {

    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);
        ListaEnlazada lista = new ListaEnlazada();
        int i, n;
        double x;
        System.out.print("Numero de elementos de la lista : ");
        n = entrada.nextInt();
        for (i = 0; i < n; i++) {
            System.out.print(" Ingrese numero : ");
            x = entrada.nextDouble();
            lista.insertaAlFinal(x);
        }
        lista.mostrar();
    }
}

Share:

Otro ejemplo


import java.io.*;

public class Producto {

    private String codigo;
    private String descripcion;
    private double precio;
    private int stock;

    public Producto() {
        setCodigo(null);
        setDescripcion(null);
        setPrecio(0);
        setStock(0);
    }

    public Producto(String codigo, String descripcion, double precio, int stock) {
        this.setCodigo(codigo);
        this.setDescripcion(descripcion);
        this.setPrecio(precio);
        this.setStock(stock);
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

    public int getStock() {
        return stock;
    }

    public void setStock(int stock) {
        this.stock = stock;
    }

    public void escribir(RandomAccessFile archivo) throws IOException {
        if (codigo.length() < 10) {
            for (int i = codigo.length(); i < 10; i++) {
                codigo = codigo + " ";
            }
        } else {
            codigo = codigo.substring(0, 10);
        }

        if (descripcion.length() < 50) {
            for (int i = descripcion.length(); i < 50; i++) {
                descripcion = descripcion + " ";
            }
        } else {
            descripcion = descripcion.substring(0, 50);
        }

        archivo.writeChars(codigo);
        archivo.writeChars(descripcion);
        archivo.writeDouble(precio);
        archivo.writeInt(stock);
    }

    public void leer(RandomAccessFile archivo) throws IOException {
        codigo = "";
        for (int i = 0; i < 10; ++i) {
            codigo += archivo.readChar();
        }
        descripcion = "";
        for (int i = 0; i < 50; ++i) {
            descripcion += archivo.readChar();
        }
        precio = archivo.readDouble();
        stock = archivo.readInt();
    }

    public int tamañoRegistro() {
        return 132;
    }

    public static void crearArchivoProductos() {
        File f = new File("d:\\productos.dat");
        if (!f.exists()) {
            try {
                RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "rw");
                fProductos.close();
            } catch (Exception ex) {
            }
        }
    }

    public Producto buscarProducto(String codigo) throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "r");
        // seek(# de Bytes a recorrer)
        fProductos.seek(0);
        boolean exito = false;
        // fproductos.getFilePointer(): Devuelve el numero de bytes
        // que ha recorrido el puntero del archivo
        // En otras me devuelve la posicion actual del puntero

        while (fProductos.getFilePointer() < fProductos.length()) {
            this.leer(fProductos);
            // trim() : Funcion de cadena que elimina los espacios en blanco
            // compareToIgnoreCase(cadena) : no distingue mayusculas y minusculas
            if (this.codigo.trim().compareToIgnoreCase(codigo.trim()) == 0) {
                exito = true;
                break;
            }

        }

        fProductos.close();
        if (exito) {
            return this;
        } else {
            return null;
        }
    }

    public int buscarProducto1(String codigo) throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "r");
        int pos, x = -1;
        fProductos.seek(0);
        pos = (int) fProductos.getFilePointer();
        while (fProductos.getFilePointer() < fProductos.length()) {
            this.leer(fProductos);
            if (this.codigo.trim().compareToIgnoreCase(codigo.trim()) == 0) {
                x = pos;
                break;
            }
            pos = (int) fProductos.getFilePointer();
        }
        fProductos.close();
        return x;
    }

    public Producto devolverProducto(int pos) throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "rw");
        fProductos.seek(pos);
        this.leer(fProductos);
        fProductos.close();
        return this;
    }

    public void modificaRegistro(int pos, String codigo, String descripcion, double precio, int stock) throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "rw");
        fProductos.seek(pos);
        this.codigo = codigo;
        this.descripcion = descripcion;
        this.precio = precio;
        this.stock = stock;
        this.escribir(fProductos);
        fProductos.close();
    }

    public void agregar() throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "rw");
        // fproductos.seek : direccion el puntero del archivo en un determinado registro
        // de acuerdo un numero de bytes
        fProductos.seek(fProductos.length());
        // fProductos.length : Me devuelve el tamaño en bytes del Archivo
        this.escribir(fProductos);
        fProductos.close();
    }

    public boolean eliminaRegistro(String codigo) throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "r");
        RandomAccessFile auxiliar = new RandomAccessFile("d:\\auxiliar.dat", "rw");
        fProductos.seek(0);
        boolean exito = false;
        while (fProductos.getFilePointer() < fProductos.length()) {
            this.leer(fProductos);
            if (this.codigo.trim().compareToIgnoreCase(codigo.trim()) != 0) {
                this.escribir(auxiliar);
            } else {
                exito = true;
            }
        }
        fProductos.close();
        auxiliar.close();
        File archivo = new File("d:\\productos.dat");
        archivo.delete();
        File archivoaux = new File("d:\\auxiliar.dat");
        archivoaux.renameTo(archivo);
        return exito;
    }

    public int numeroDeRegistros() throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "r");
        int n = (int) fProductos.length() / this.tamañoRegistro();
        fProductos.close();
        return n;

    }

    public String toString() {
        return codigo.trim() + " " + descripcion.trim() + " " + precio + " " + stock;
    }

    public void imprimir() throws IOException {
        RandomAccessFile fProductos = new RandomAccessFile("d:\\productos.dat", "r");
        // seek(# de Bytes a recorrer)
        fProductos.seek(0);

        while (fProductos.getFilePointer() < fProductos.length()) {
            this.leer(fProductos);
            System.out.println(this);
        }

        fProductos.close();
    }

}



import java.io.*;
class ArchivoAleatorio {

    public static void main(String args[]) throws IOException {
        // se llama crearArchivoProductos porque es estatico
        Producto.crearArchivoProductos();

        new Producto("001", "alfa", 12.5, 10).agregar();
        new Producto("002", "beta", 13.9, 10).agregar();
        Producto prod = new Producto();

        if (prod.buscarProducto("001") != null) {
            System.out.println("El codigo existe");
        } else {
            System.out.println("El codigo no existe");
        }

        prod.imprimir();

    }
}

Share:

Programa para convertir un numero de base 10 a base b (entre 2 y 9)


import java.util.*;

class recursividad06 {

    public static void conversionBase(int n, int b) {
        if (n < b) {
            System.out.print(n);
        } else {
            conversionBase(n / b, b);
            System.out.print(n % b);
        }
    }

    public static void main(String args[]) throws IOException {
        Scanner in = new Scanner(System.in);
        int num, b;
        do {
            System.out.print("Ingrese numero :");
            num = Integer.parseInt(br.readLine());
        } while (num <= 0);
        do {
            System.out.print("Base a la que quiere convertir : ");
            b = Integer.parseInt(br.readLine());
        } while (b < 2 || b > 9);
        System.out.print("El numero " + num + " en base " + b + " es : ");
        conversionBase(num, b);
        System.out.println();
    }
}

Share:

Programa para reportar un numero al reves


import java.util.Scanner;

class recursividad05 {

    public static void reves(int n) {
        System.out.print(n % 10);
        if (n / 10 != 0) {
            reves(n / 10);
        }
    }

    public static void main(String args[]) throws IOException {
        Scanner in = new Scanner(System.in);
        int num;

        do {
            System.out.print("Ingrese numero :");
            num = in.nextInt();
        } while (num <= 0);
        System.out.print("Numero al reves :");
        reves(num);
        System.out.println();
    }
}

Share:

Programa para calcular el máximo común divisor de dos números.


import java.util.Scanner;

class Recursividad04 {

    public static int mcd(int a, int b) {
        if (a % b == 0) {
            return b;
        } else {
            return mcd(b, a % b);
        }
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int x, y;
        do {
            System.out.print("Ingrese primer numero :");
            x = in.nextInt();
        } while (x <= 0);
        do {
            System.out.print("Ingrese segundo numero :");
            y = in.nextInt();
        } while (y <= 0);
        System.out.println("El mcd de " + x + " y " + y + " es : " + mcd(x, y));
    }
}

Share:

Hacer un programa para que reporte los n términos de la serie de Fibonacci


import java.util.Scanner;

class Recursividad03 {

    public static int fibonacci(int n) {
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            return 1;
        } else {
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int n, i;
        do {
            System.out.print("Número de terminos de la serie : ");
            n = in.nextInt();
        } while (n <= 0);
        for (i = 1; i <= n; i++) {
            System.out.print(fibonacci(i) + " ");
        }
        System.out.println();
    }
}

Share:

Calcular la potencia de x elevado a la n en forma recursiva. x real y n entero positivo


import java.util.Scanner;

class Recursividad02 {

    public static double potencia(double x, double n) {
        if (n == 0) {
            return 1;
        } else {
            return x * potencia(x, n - 1);
        }
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int n;
        double x;
        System.out.print("Valor de x :");
        x = in.nextDouble();
        do {
            System.out.print("valor de n : ");
            n = in.nextInt();
        } while (n <= 0);
        System.out.println(x + " elevado a la " + n + " es igual a " + potencia(x, n));
    }
}

Share:

Hacer un programa para calcular el factorial de un número en netbeans

import java.util.Scanner;

class Recursividad01 {

    public static int factorial(int n) {
        if (n == 0) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int num;
        do {
            System.out.print("Ingrese numero :");
            num = in.nextInt();
        } while (num <= 0);
        System.out.println("El factorial es : " + factorial(num));
    }
}

Share:

Crear una lista enlazada donde se pueda ingresar , mostrar, ingresar al final, borrar , mayor de la lista y menor


package proyectolistasenlazadas;

import java.util.Scanner;

public class ProyectoListasEnlazadas {

    public static Scanner sc = new Scanner(System.in);
    public static ListaEnLazada miLista = new ListaEnLazada();

    public static void main(String[] args) {

        int op = 0;

        do {
            System.out.println("menu de opciones");
            System.out.println("[1] Ingresar elementos a las lista");
            System.out.println("[2] Mostrar lista");
            System.out.println("[3] Ingrese Elemento Al final");
            System.out.println("[4] Borrar numero del inicio");
            System.out.println("[5] Mayor numero");
            System.out.println("[6] Menor numero");
            System.out.println("[7] Promedio");
            System.out.println("[8] Ordenar Acendente ");
            System.out.println("[9] Eliminar por posicion");
            System.out.println("[10] Salir");
            System.out.println("Ingrese opcion[1-10]");
            op = sc.nextInt();
            switch (op) {

                case 1:

                    double x = 0;
                    System.out.println("numero de elementos de la lista");
                    int n = sc.nextInt();
                    for (int j = 0; j < n; j++) {
                        System.out.println("Ingrese numero::" + j);
                        x = sc.nextDouble();
                        miLista.insertarAlinicio(x);
                    }
                    break;
                case 2:
                    System.out.println("Los numeros ingresados son::");
                    miLista.mostrar();
                    break;
                case 3:
                    double e;
                    System.out.println("numero de elementos de la lista");
                    int r = sc.nextInt();
                    for (int i = 0; i < r; i++) {
                        System.out.println("Ingrese numer::" + i);
                        e = sc.nextDouble();
                        miLista.insertarAlFinal(e);
                  }
                    break;
                case 4:
                    System.out.println("Borrando numero del inicio");
                    miLista.borrarPrimero();
                    break;
                case 5:
               
                    miLista.mayor();
                    break;
                case 6:
                    miLista.menor();break;
                 
                case 7:
                    System.out.println("Promedio ");
                    miLista.promedio();
                    break;
                case 8:
                    System.out.println("ORDENAMIENTO ACENDENTE");
                    miLista.ordenarAcendente();
                    miLista.mostrar();
                    break;
                case 9:
                    System.out.println("Ingrese Numero a eliminar ");
                    double numero=sc.nextDouble();
                 
                    if(miLista.buscarPosicion(numero)!=-1){  
                        int p=miLista.buscarPosicion(numero);
                        miLista.borrar(p);
                        System.out.println("numero eliminado");
                    }else{
                        System.out.println("Nuemro no encontrado ");
                    }
                break;
                 
                default:
                    System.out.println("Saliendo del programa ");
            }
        } while (op != 10);
    }
}





SUB CLASE

package proyectolistasenlazadas;


public class ListaEnLazada {

    protected Nodo primero;
    private int tamaño = 0;

    public int getTamaño() {
        return tamaño;
    }

    public void setTamaño(int tamaño) {
        this.tamaño = tamaño;
    }

    public ListaEnLazada() {
        primero = null;
    }

    public Nodo getPrimero() {
        return primero;
    }

    public void setPrimero(Nodo primero) {
        this.primero = primero;
    }

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

    public void insertarAlinicio(double x) {
        Nodo nuevo = new Nodo(x);
        nuevo.setInfo(x);
        if (esVacio()) {

            primero = nuevo;
        } else {
            nuevo.setSiguiente(primero);
            primero = nuevo;
        }
        tamaño++;

    }

    public void insertarAlFinal(double x) {
        Nodo nuevo = new Nodo(x);
        nuevo.setInfo(x);
        if (esVacio()) {
            primero = nuevo;
        } else {
            Nodo aux = primero;
            while (aux.getSiguiente() != null) {
                aux = aux.getSiguiente();
            }
         aux.setSiguiente(nuevo);
        }
        tamaño++;
    }

    public void mostrar() {
        Nodo p = primero;
        while (p != null) {
            System.out.println("[" + p.getInfo() + "]");
            p = p.getSiguiente();
        }
    }

    public void borrarPrimero() {

        primero = primero.getSiguiente();

    }

    public void mayor() {
        Nodo a = primero;
        double mayor = primero.getInfo();
        while (a != null) {

            if (a.getInfo() > mayor) {
                mayor = a.getInfo();

            }
            a = a.getSiguiente();

        }
        System.out.println("El mayor es " + mayor);
    }

    public void menor() {
        Nodo a = primero;
        double menor = primero.getInfo();
        while (a != null) {

            if (a.getInfo() < menor) {
                menor = a.getInfo();

            }
            a = a.getSiguiente();

        }
        System.out.println("El menor es " + menor);
    }

    public void promedio() {
        Nodo a = primero;
        double suma = 0;
        int con = 0;
        while (a != null) {
            suma += a.getInfo();
            con++;
            a = a.getSiguiente();
        }
        double promedio = suma / con;
        System.out.println("el promedio es" + promedio);
    }

    public int buscarPosicion(double x) {
        Nodo a = primero;
        int posi = -1;
        int con = 0;
        while (a != null) {
            con++;
            if (a.getInfo() == x) {
                posi = con;
            }
            a = a.getSiguiente();
        }
        return posi;
    }

    public void borrar(int pos) {
        if (pos >= 0 && pos < getTamaño()) {
            if (pos == 0) {
                primero = primero.getSiguiente();
            } else {
                Nodo aux = primero.getSiguiente();
                for (int i = 0; i < getTamaño(); i++) {
                    aux = aux.getSiguiente();
                }
                Nodo siguiente = aux.getSiguiente();
                aux.setSiguiente(siguiente.getSiguiente());
            }
            tamaño--;

        }

    }

     public void ordenarAcendente() {
       Nodo a=primero;
       double aux;
       while(a!=null){
           Nodo siguiente=a.getSiguiente();
           if(a.getInfo()>siguiente.getInfo()){
               aux= a.getInfo();
               a.setInfo(siguiente.getInfo());
               siguiente.setInfo(a.getInfo());
           }
           a=a.getSiguiente();
       }
     }
}




NODO

package proyectolistasenlazadas;

/**
 * Fecha: 15/05/2017
 * Autor: Antonio Aburto Cortez
 */
public class Nodo {
 
private double info;
private Nodo siguiente;

public Nodo(){
    siguiente=null;
}
 
public Nodo (double x){
   siguiente=null;
   info=x;
}
 
 public Nodo(double x,Nodo siguiente){
     info=x;
     this.siguiente=siguiente;
 }

    public double getInfo() {
        return info;
    }

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

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }
 public void VerNodo(){
     System.out.println("["+info+"]");
 }


}
Share:

Buscar este blog

Con tecnología de Blogger.

Blog Archive

Blog Archive