jueves, 22 de octubre de 2020

Listas enlazadas (Parte 2)

miércoles, 21 de octubre de 2020

Listas enlazadas (parte 1)

Hola a todos en esta entrega hablaremos sobre listas, nodos y punteros demostrando su funcionalidad en la programación. 



NODOS 

Un nodo es un elemento que será una estructura o registro que dispondrá de campos que serán referencia a otro nodo o puntero.




PUNTERO

Variable que refiere a una parte de la memoria.


LISTAS ENLAZADAS

Son una colección o secuencias de información formados de manera consecutiva uno detrás del otro unidos por una referencia o enlace. 
Estas listas se clasifican en cuatro grupos.

1- Simplemente enlazadas.
2- Doblemente enlazadas.
3- Circular simplemente enlazada.
4- circular doblemente enlazada.











Lista circular doblemente enlazada.


 TORRES DE HANOI



    Hola a todos nuestros lectores en esta ocasión veremos la forma de crear una solución de el juego matemático las torres de Hanói utilizando la recursividad este juego consiste en una cantidad de discos que se distribuyen de el mayor diámetro al menor introducidos en un poste de madera donde hay tres sobre una base la dificultad de este juego es pasar los discos a cualquier otro de los postes sin colocar un disco grande sobre uno pequeño


entonces mostraremos el código de solución de dicho juego.

  

se crea un método para encontrar la solución de  las torres de Hanói  recibiendo los parámetros discos, torre1,  torre2, y torre3.
condicionamos si discos es igual a uno se mueve disco de torre 1 a torre 3
si no se le  resta 1 a los discos y se hace el movimiento de torre 1 a torre 3y volvemos a restar uno de discos.


La solución queda como se muestra en la imagen.

martes, 20 de octubre de 2020

Fibonacci

 Hola amigos continualos con programacionen esta ocacion veremos la serie Fibonacci resuelta en codigo de java.

Comentarles de la serie Fibonacci Consta de una serie de números naturales que se suman de a 2, a partir de 0 y 1. Básicamente, la sucesión de Fibonacci se realiza sumando siempre los últimos 2 números (Todos los números presentes en la sucesión se llaman números de Fibonacci) de la siguiente manera: 0,1,1,2,3,5,8,13,21,34...



Codigo:  

package pkg7.practica.fibonacci;

public class PracticaFibonacci {


    

    public static void main(String[] args) {

        

        PracticaFibonacci objFibonacci = new PracticaFibonacci();

        System.out.println("La sucesion con Fibonacci recursivo es: " + objFibonacci.fibonacciRecursivo(4));

        

    }

    //METODO RECURSIVO PARA LA SUCESION DE FIBONACCI

    //0,1-1-2-3-5-8-13-21-34

    public int fibonacciRecursivo(int n){

        if(n==1 || n==2){

            return 1;

        }else{

            return fibonacciRecursivo(n-1) + fibonacciRecursivo(n-2);

            //posicion 1 

            //Numero 1 - 2 - 3

            //resultado 1- 1- 

        

        }

    }

    //METODO CICLICO PARA LA SUCESION DE FIBONACCI

    public int fibonacciCiclico(int n){

        int fibo=0, primero = 1, segundo=0;

        while(n>0){

            fibo=primero+segundo;

            primero=segundo;

            segundo=fibo;

            n--;

            //n 3 2 1 0

            // fibo 1 1 2

            // primero 0 1 1

            //segundo 1 1 2

        }

        return fibo;

    }

    

}



Recursividad

 Saludes mis amigos en esta entrada vamos hablar sobre la recursividad.

Es una técnica que permite que un bloque de instrucciones se ejecuten n veces, logrando en algunas ocasiones reemplazar a las estructuras repetitivas. , aquí vamos
a desarrollar un ejemplo.


Vamos a calcular cuantas escalones de una escalera necesitamos pasar.



Seguidamente vamos a crear un objeto que le llamaremos BajarEscalera.

Seguidamente vamos hacer lo métodos , así el, programa nos calculara los escalones faltantes



recordemos que primero se tiene que poner un metodo, seguidamente  las instrucciones de ese metodo. 








ejemplo de TDA ArraysList

 Saludes mis amigos en esta oportunidad veremos  un ejemplo de Arraylist donde se le pide una frase ,seguidamente se le pedirá si quiere poner otra frase, así la modificara veamos






/**
 *
 * @author Israel Campos y Dannis Alfaro
 */
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class PracticaTDAArrayList {

    
    public static void main(String[] args) {
        //P1 HACER UN OBJETO O INSTANCIA DE ARRAYLIST
        ArrayList <String> cadenas;
        cadenas = new ArrayList<String>();
        
        //P2 DEFINIR 2 VARIABLES MAS
        String frase, respuesta;
        
        //P3 LLENAR EL ARRAY LIST DINAMICAMENTE
        do{
            //Primero capturar la frase
            frase = JOptionPane.showInputDialog(null,"Ingrese la frase");
            
            //Segundo agregar la frase al array list
            cadenas.add(frase);
            
            //Tercero, preguntar si desea seguir agregando frases
            respuesta = JOptionPane.showInputDialog(null,"¿Desea ingresar otra frase (SI/NO)?");
            respuesta = respuesta.toUpperCase();
            
          } while(respuesta.equals("SI"));
        
        //P4 MOSTRAR EL CONTENIDO DEL ARRAYLIST (cadenas)
        //Utilizaremos el metodo size y el metodo get de los arraylist
        System.out.println("Las frases originales son: ");
        int i;
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
        
        //P5. UTILIZAR SET DE ARRARYLIST(cadenas)
        System.out.println("Las frases modificadas son: ");
        cadenas.set(1,"Elemento modificado") ;
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
        //P6 UTILIZAR EL METODO REMOVE DEL ARRAYLIST(cadenas)
        System.out.println("\n LAS FRASES QUE NOS QUEDAN SON: ");
        cadenas.remove(0);
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
    }
    
}
 

Continuaremos en la siguiente entrada
















jueves, 15 de octubre de 2020

Clase Arraylist





 Saludes queridos lectores, en este momento vamos hablar sobre el método Arraylist.

Esto nos permite insertar elementos, remplazarlos, consultarlos, entre otros procesos.

para crearlos debemos de definirlos : arrayList<>,

Para poder utilizar las operaciones como eliminar, buscar o modificar podemos ocupar los métodos siguientes 



Esperemos  con la siguiente entrada para continuar hablando de este amplio mundo de Java. 



Listas enlazadas (Parte 2)

Saludes ,en esta oportunidad vamos a hablar  sobre las Listas enlazadas Pero antes comenzaremos con algunos conceptos: ¿Qué es un nodo?  ...