jueves, 13 de agosto de 2015

Cola en java

Generar una cola, y aplicar métodos de insertar, eliminar y modificar.
·         Código aquí


public class Colas {

    public static class Nodo {

        int dato;
        Nodo sig;
    }

    public static void main(String[] args) {
        //creando la cola de numeros pares con 5 elementos
        int n = 5;
        int m = 2;
        Nodo top = null;
        Nodo ultimo = null;
        Nodo temp;
        for (int i = 1; i <= n; i++) {
            temp = new Nodo();
            temp.dato = i * m;
            temp.sig = null;
            if (top == null) {
                top = temp;
            } else {
                ultimo.sig = temp;
            }
            ultimo = temp;
        }
        //impresion de la cola generada
        System.out.println("Impresion de la cola generada");
        temp = top;
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }
        // insertar
        int num = 12;
        Nodo insertar = new Nodo();
        insertar.dato = num;
        ultimo.sig = insertar;
        ultimo = insertar;
        //impresion de la nueva cola
        System.out.println("Impresion de la cola insertado el elemento " + num);

        temp = top;
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }
        //modificar
        int buscar = 6;
        int modificar = 99;
        Nodo colat = null;
        Nodo ultimot = null;
        temp = top;
        Nodo temp1;
        while (temp.dato != buscar) {
            temp1 = new Nodo();
            temp1.dato = temp.dato;
            temp1.sig = null;
            if (colat == null)//primer nodo
            {
                colat = temp1;
            } else {
                ultimot.sig = temp1;
            }
            ultimot = temp1;
            top = top.sig;
            temp = top;

        }
        top.dato = modificar;//modificar el elemento
        if (colat != null) {
            ultimot.sig = top;//junto colas
            top = colat;//ajuste punteros
            colat = null;
        }
        // impresion de la cola modificada
        System.out.println("Cola modificado el elemento " + buscar + " por " + modificar);
        temp = top;
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }

        buscar = 99;

        colat = null;
        ultimot = null;
        temp = top;

        while (temp.dato != buscar) {
            temp1 = new Nodo();
            temp1.dato = temp.dato;
            temp1.sig = null;
            if (colat == null)//primer nodo
            {
                colat = temp1;
            } else {
                ultimot.sig = temp1;
            }
            ultimot = temp1;
            top = top.sig;
            temp = top;

        }
        top = top.sig;//elimino el elemento
        if (colat != null) {
            ultimot.sig = top;//junto colas
            top = colat;//ajuste punteros
            colat = null;
        }
        System.out.println("Cola eliminado el elemento " + buscar);
        temp = top;
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }
    }


}

Corrida

Pila en java

Generar una pila, y aplicar métodos de insertar, eliminar y modificar.
Código aquí


package pilasejemplo;

import pilasejemplo.PilasEjemplo.pila.Nodo;

public class PilasEjemplo {

    static class pila {

        static class Nodo {

            int dato;
            Nodo sig;
        }
    }

    public static void main(String[] args) {
//Crear
        int n = 5;
        int m = 2;
        Nodo top = null;
        for (int i = 1; i <= n; i++) {
            Nodo temp = new Nodo();
            temp.dato = m * i;
            if (top == null) {
                temp.sig = null;
            } else {
                temp.sig = top;
            }
            top = temp;
        }
//imprime
        Nodo temp = top;
        System.out.println("Pila");
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }
//ingresar
        int ingresar = 12;
        Nodo tempIng = new Nodo();
        tempIng.dato = ingresar;
        tempIng.sig = top;
        top = tempIng;
//imprime
        temp = top;
        System.out.println("Pila ingresada el elemento " + ingresar);
        while (temp != null) {
            System.out.println(temp.dato);
            temp = temp.sig;
        }
//Modificar
        Nodo pilat2 = null;
        int buscar2 = 8;
        int modificar = 99;
        temp = top;
        Nodo temp2 = new Nodo();

        while (temp.dato != buscar2) {
            temp2 = new Nodo();
            temp2.dato = temp.dato;//volcado
            if (pilat2 == null) {
                temp2.sig = null;
            } else {
                temp2.sig = pilat2;

            }
            pilat2 = temp2;
            top = top.sig;
            temp = top;

        }

        top.dato = modificar; // Modifico
        temp2 = pilat2;
        while (temp2 != null) {
            temp = new Nodo();
            temp.dato = temp2.dato;
            if (top == null) {
                temp.sig = null;
            } else {
                temp.sig = top;

            }
            top = temp;
            pilat2 = pilat2.sig;
            temp2 = pilat2;

        }
//imprime
        temp = top;
        System.out.println("Pila modificada el elemento " + buscar2 + " por " + modificar);
        while (temp != null) {

            System.out.println(temp.dato);
            temp = temp.sig;
        }
//Eliminar   
        Nodo pilat = null;
        int buscar = 6;

        temp = top;
        Nodo temp1 = new Nodo();

        while (temp.dato != buscar) {
            temp1 = new Nodo();
            temp1.dato = temp.dato;//volcado
            if (pilat == null) {
                temp1.sig = null;
            } else {
                temp1.sig = pilat;
            }
            pilat = temp1;
            top = top.sig;
            temp = top;

        }
        top = top.sig; // Elimino
        temp1 = pilat;
        while (temp1 != null) {
            temp = new Nodo();
            temp.dato = temp1.dato;
            if (top == null) {
                temp.sig = null;
            } else {
                temp.sig = top;
            }
            top = temp;
            pilat = pilat.sig;
            temp1 = pilat;

        }
//imprime
        temp = top;
        System.out.println("Pila eliminada el elemento " + buscar);
        while (temp != null) {

            System.out.println(temp.dato);
            temp = temp.sig;
        }
    }

}

Corrida


Contactos agenda

Crear una agenda de contactos, con nombre y teléfono, realizar las operaciones de insertar, eliminar y modificar.

Código aquí


 b) usando 1 arreglo bidimensional
package contactosarraysbidimensional;

import java.util.Scanner;

public class ContactosArraysBidimensional {

    public static void main(String[] args) {
        String[][] contacto = new String[100][2];
        Scanner leer = new Scanner(System.in);
        for (int i = 0; i < 100; i++) {
            for (int j = 0; j < 2; j++) {
                contacto[i][j] = "";
            }
        }
        boolean seguir = true;
        while (seguir) {
            System.out.println("Menu:\n 1. Ingresar contactos \n 2. Eliminar contactos \n 3. Modificar contactos\n 4. Imprimir contactos\n 5. Salir");
            int op = leer.nextInt();
            switch (op) {
                case 1:
                    int j = 0;
                    while (!(contacto[j][0].equals(""))) {
                        j++;
                    }
                    leer.nextLine();
                    System.out.println("Escriba el nombre:");
                    contacto[j][0] = leer.nextLine();
                    System.out.println("Escriba el telefono:");
                    contacto[j][1] = leer.nextLine();
                    break;
                case 2:
                    leer.nextLine();
                    System.out.println("Escriba el contacto a eliminar");
                    String borrar = leer.nextLine();
                    for (int i = 0; i < 100; i++) {
                        if ((contacto[i][0].equals(borrar))) {
                            contacto[i][0] = "";
                            contacto[i][1] = "";
                            for (int k = i; k < 99; k++) {
                                for (int l = 0; l < 2; l++) {
                                    contacto[k][l] = contacto[k+1][l];
                                    contacto[99][l]= "";
                                }
                            }
//                           
                        }
                    }
                    break;
                case 3:
                    leer.nextLine();
                    System.out.println("Escriba el contacto a modificar");
                    String modificar = leer.nextLine();
                    for (int i = 0; i < 100; i++) {
                        if ((contacto[i][0].equals(modificar))) {
                            System.out.println("Escriba el nombre:");
                            contacto[i][0]= leer.nextLine();
                            System.out.println("Escriba el telefono:");
                            contacto[i][1] = leer.nextLine();
                        }
                    }

                    break;
                case 4:
                    for (int i = 0; i < 100; i++) {
                        if (!(contacto[i][0].equals(""))) {
                            System.out.println((i + 1) + ". Nombre: " + contacto[i][0] + "\nTelefono: " + contacto[i][1]);
                        }

                    }
                    break;
                case 5:
                    seguir = false;
                    break;
                default:
                    System.out.println("error, escriba una de las opciones");
                    break;
            }

        }
    }
}

Corrida

Lista circular

Inserción al inicio y inserción al final


Código aquí
Package listacircular;

public class ListaCircular {
static class Nodo{
    int dato;
    Nodo sig;
}
    public static void main(String[] args) {
        int m=2;
        int n=5;
        Nodo top = null;
//        //insercion al inicio
//        for(int i=0; i<=0;i++){
//            Nodo temp =new Nodo();
//            Nodo ultimo = new Nodo();
//            temp.dato=i*m;
//            if(top==null){
//                temp.sig=temp;
//                ultimo=temp;
//            }else{
//                temp.sig=top;
//                ultimo.sig=temp;
//            }
//            top= temp;
//            ultimo.sig=top;
//        }
        //insercion al final
        for(int i=0; i<=0;i++){
            Nodo temp =new Nodo();
            Nodo ultimo = new Nodo();
            temp.dato=i*m;
            if(top==null){
                temp.sig=temp;
                ultimo=temp;
            }else{
                temp.sig=top;
                ultimo.sig=temp;
            }
           
            ultimo=temp;
        }
        //imprime lista circular
        Nodo temp=top;
        while(temp.sig!=top.sig){
            System.out.println(temp.dato);
            temp=temp.sig;
           
        }
    }
}

Contactos agenda

Crear una agenda de contactos, con nombre y teléfono, realizar las operaciones de insertar, eliminar y modificar.

a) usando 2 arreglos unidimensionales
Código aquí

package contactosdosarrays;
import java.util.Scanner;
public class ContactosDosArrays {

    public static void main(String[] args) {
        String[] nombre = new String[100];
        String[] telefono = new String[100];
        Scanner leer = new Scanner(System.in);
        for (int i = 0; i < nombre.length - 1; i++) {
            nombre[i] = "";
            telefono[i] = "";
        }
        boolean seguir = true;
        while (seguir) {
            System.out.println("Menu:\n 1. Ingresar contactos \n 2. Eliminar contactos \n 3. Modificar contactos\n 4. Imprimir contactos\n 5. Salir");
            int op = leer.nextInt();
            switch (op) {
                case 1:
                    int j = 0;
                    while (!(nombre[j].equals(""))) {
                        j++;
                    }
                    leer.nextLine();
                    System.out.println("Escriba el nombre:");
                    nombre[j] = leer.nextLine();
                    System.out.println("Escriba el telefono:");
                    telefono[j] = leer.nextLine();
                    break;
                case 2:
                    leer.nextLine();
                    System.out.println("Escriba el contacto a eliminar");
                    String borrar = leer.nextLine();
                    for (int i = 0; i < nombre.length - 1; i++) {
                        if ((nombre[i].equals(borrar))) {
                            nombre[i] = "";
                            telefono[i] = "";
                            for(int k =i; k < nombre.length-1; k++){
                                nombre[k]= nombre[k+1];
                                telefono[k]= telefono[k+1];
                                nombre[99]= "";
                                telefono[99]= "";
                               
                                        }
                        }
                    }
                    break;
                case 3:
                    leer.nextLine();
                    System.out.println("Escriba el contacto a modificar");
                    String modificar = leer.nextLine();
                    for (int i = 0; i < nombre.length - 1; i++) {
                        if ((nombre[i].equals(modificar))) {
                            System.out.println("Escriba el nombre:");
                            nombre[i] = leer.nextLine();
                            System.out.println("Escriba el telefono:");
                            telefono[i] = leer.nextLine();
                        }
                    }

                    break;
                case 4:
                    for (int i = 0; i < nombre.length - 1; i++) {
                        if (!(nombre[i].equals(""))) {
                            System.out.println((i+1)+". Nombre: " + nombre[i] + "\nTelefono: " + telefono[i]);
                        }

                    }
                    break;
                case 5:
                    seguir = false;
                    break;
                default:
                    System.out.println("error, escriba una de las opciones");
                    break;
            }

        }

    }

}

Corrida

Generar n números pares aleatorios múltiplos de m

responder:
        Cuantas veces se genero el primer numero
b      Cuál es el primer y último numero
        Que numero es el de la mitad del arreglo

  Aquí esta el código


package numeroparesaleatorio;

import java.util.Scanner;

public class NumeroParesAleatorio {

    public static void main(String[] args) {
        System.out.println("Escriba el numero pares aleatorios que desea generar:");
        Scanner leer = new Scanner(System.in);
        int dim = leer.nextInt();
        System.out.println("Multiplo de que desea:");
        int mult = leer.nextInt();
        int num = 0;
        int repet =0;
        int[] vector = new int[dim];
        for (int i = 0; i < vector.length; i++) {
          
            do {
                num = (int) (Math.random() * 100);
            } while ((num % mult != 0));

            vector[i] = num;
            System.out.println("[" + i + "]" + "------>" + vector[i]);
        }
        for (int i = 0; i < vector.length; i++) {
            if(vector[i]==vector[1]){
                repet++;
            }
        }
        System.out.println("Se genero "+repet+" veces el numero "+vector[0]);
        System.out.println("El primer elemento del vector es: " + vector[0]);
        System.out.println("El ultimo elemento del vector es: " + vector[dim-1]);
        int mitad =(int)((dim-1)/2);
        System.out.println("El elemento de la mitad("+mitad+") del vector es:" + vector[mitad]);
    }
}

Corrida






Generar n numeros aleatorios y ponerlos a un vector

Aquí esta el código

package numeroparesaleatorio;

import java.util.Scanner;

public class NumeroParesAleatorio {
    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        System.out.println("Escriba el numero pares aleatorios que desea generar:");
        int dim = leer.nextInt();
       
        int [] vector = new int[dim];
        for(int i=0; i<vector.length; i++){
            int aleatorio = (int) (Math.random()*50)+1; // genera números aleatorios de 1 al 50
            vector[i]= aleatorio*2;  // multiplico por dos para que sean pares
            System.out.println(vector[i]);
        }
    }

}


imagen de corrida