elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  listas enlazadas problemas resueltos todo un paquete de 13 problemas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: listas enlazadas problemas resueltos todo un paquete de 13 problemas  (Leído 55,309 veces)
fiisi

Desconectado Desconectado

Mensajes: 19



Ver Perfil
listas enlazadas problemas resueltos todo un paquete de 13 problemas
« en: 6 Junio 2009, 19:52 pm »

hola a todos espero que este problema sea de mucha ayuda   a mucha gente que esra enpesando en el mundo java  ::)
bueno disculpen por lo malo que esta este post es mi segunda 2 que aporto y no me sale muy bien
 ;D


A MI PAKETE SE LLAMA listaenlazadadavid
les dejo un problema resuelto.
1)implementar una lista enlazada de datos enteros con las funciones basicas y adicionar las sgtes funciones.
1º que calcule el mayor de los datos e indike la posicion en que se encuentre.
2ºque calcule el dato minimo y cuente la cantidad de veces que se repita.
3ºque sume los datos de una lista recursivamente.
4º que sume los datos pares de una lisa recursivamente.
5º que visualize los datos pares de la lista recursivamente.
6º que muestre los numeros primos.
7º que ordene los datos de la lista.
8ºque verifike si esta ordenada.
9º que invierta la lista.
10º que buske un dato el la lista recursivamente.
11ºque elimine un dato recursivamente.
12ºque duplike los datos e la lista y lo almacene en otra lista.
aca esta todo los codigos:

//  principal  de aqui sale todo
package listaenlazadadavid;

/**
 *
 * xD
 */
public class Principal
    {

        public static void main(String[] args)
        {
     Lista l1= new Lista();

     
     l1.Ingresar(2);
     l1.Ingresar(10);
     l1.Ingresar(10);
     l1.Ingresar(14);
     l1.Ingresar(16);
     l1.Ingresar(9);
     l1.Ingresar(12);
     l1.Visualizar();
     l1.Buscar(2);
     l1.Buscar(8);
     l1.EliminarTodo_Recursivo(10);

   
      l1.Visualizar();
      l1.MayoryPosicion();
      l1.MenoryRepeticion();
      l1.Suma_Recursivo();
      l1.SumaPares_Recursivo();
      l1.MenoresNumero(15);
     
        }

    }



//creas una nueva class

package listaenlazadadavid;

/*
    xD
 */

   public class Nodo
    {//para  privado
    private int info;
    private Nodo sig;
    //Creamo el constructor.-El constructor crea objeto
       public Nodo(int n)
       {//Creamos variables de entrada=info y siguiente=sig
             info=n;
             sig=null;
             
       }
       // sacar el dato info
       public int SacarInfo()
       {//Con este metodo ya tenemos la variable info
           return info;
       }
       public Nodo SacarSig()
       {
           return  sig;
       }
       public void Enlace(Nodo g)
       {         
           sig=g;
       }

     
    }
   
   

//nuevo class  todo va toda la lista que esta enumerada arriba.

package listaenlazadadavid;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

/**
 *
 * xD
 *
 */
public class Lista
    {
    //Creamos los tipos de nodo
    private Nodo primero, ultimo;
   
    //Creacion del contructor
    public Lista()
    {
        primero=ultimo=null;
    }
    // para ver si esta vacia
    public boolean EstaVacia()
    {
        return primero==null;
    }
    //En este metodo
     public void Ingresar(int n)
     {   //llamamos a la referencia
         Nodo p= new Nodo(n);
         //entra if
         if(EstaVacia())
             primero=ultimo=p;
         else
         {
             ultimo.Enlace(p);
             ultimo=p;
         }       
         
     }
     public void Visualizar()
     {
         
        Nodo p=primero; String Salida="Datos :\n ";
 
       while (p!=null)
         {             
         Salida=Salida+ p.SacarInfo()+"\n";
         p=p.SacarSig();
         }
   
       JTextArea areaSalida= new JTextArea();
       areaSalida.setText(Salida);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
       
     }

     public void Buscar(int n)
     {
            if(EstaVacia())         
             return;
             Nodo p=primero;
             String salida="Resultado:\n";
              while (p!=null && p.SacarInfo()!=n)
                  {
                  p=p.SacarSig();
                 }
                  if(p==null)
                  {
                      salida=salida+"Dato no encontrado";
                  }
                  else
                  {
                      salida=salida+"Dato encontrado";
                  }
              JTextArea areaSalida= new JTextArea();
       areaSalida.setText(salida);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
               
        }
         
    public void Buscar_Recursivo(Nodo p,int n)
      {
          if(EstaVacia())
              return ;
                   
          if(p.SacarInfo()!=n)
              Buscar(n);
          Buscar_Recursivo(p.SacarSig(), n);
      }
      public void Buscar_Recursivo(int n)
      {
          Buscar_Recursivo(primero,n);
      }
      public void Eliminar(int n)
      {
         
          if(EstaVacia())
          return ;
          Nodo p=primero; Nodo q=null;
          while(p!=null && p.SacarInfo()!=n)
          {
              q=p;
              p=p.SacarSig();
          }
          if(p==primero)             
          {
              primero=p.SacarSig();
          }
          else
          {
              q.Enlace(p.SacarSig());
              if(p==ultimo)
                  ultimo=q;                           
          }
                             
      }
      public void EliminarTodo(int n)
      {
          if(EstaVacia())
              return;
          Nodo p=primero;
          while(p!=null)
          {
              if(p.SacarInfo()==n)
                  this.Eliminar(n);
              p=p.SacarSig();
          }
      }
      public void EliminarTodo_Recursivo(Nodo p,int n)
      {
          if(p==null)
              return ;
                   
          if(p.SacarInfo()==n)
              Eliminar(n);
         EliminarTodo_Recursivo(p.SacarSig(), n);
      }
      public void EliminarTodo_Recursivo(int n)
      {
         EliminarTodo_Recursivo(primero,n);
      }
      public void Suma_Recursivo(Nodo p,int s)
      {
          if(p==null)
          {
       JTextArea areaSalida= new JTextArea();
       areaSalida.setText("La Suma total es:"+s);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
       return ;
          } 
         
             
        Suma_Recursivo(p.SacarSig(), s+p.SacarInfo());
      }
      public void Suma_Recursivo( )
      {
       Suma_Recursivo(primero,0);
      }
      public int Suma(Nodo p)
      {
          if(p==null)
              return 0;
          return p.SacarInfo()+Suma(p.SacarSig());
      }
      public void SumaDatos()
      {
         int s=Suma(primero);
      }
private int MaximoNumero(Nodo oNodoTemporal, int numerador)
       {     
         if(oNodoTemporal==null)
            {           
            return ultimo.SacarInfo();
         
            }
        if(MaximoNumero(oNodoTemporal.SacarSig(), numerador-1)<=oNodoTemporal.SacarInfo())
            {                   
            return oNodoTemporal.SacarInfo();
            }
         
        return MaximoNumero(oNodoTemporal.SacarSig(),numerador-1);
    }

     public void BuscarPosicion(int n)
     {
            if(EstaVacia())         
             return;
             Nodo p=primero;
             String salida="Resultado:\n";
             int i=0;
              while (p!=null)
              {
                 
                  if(p==null)
                        {
                      salida=salida+"Dato no encontrado";
                        }
                  if(p.SacarInfo()==n)
                      {
                      salida=salida+"La posicion del dato es :"+i;
                      }
                  p=p.SacarSig();
             i++;
             
              }
       JTextArea areaSalida= new JTextArea();
       areaSalida.setText(salida);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
               
        }
     
    public int contadorDeElementos(){
        Nodo oNodoTemporal = primero;
        int i=0;
        while(oNodoTemporal!=null)
        {
           i++;
           oNodoTemporal=oNodoTemporal.SacarSig();
        }     
        return i;
    }
     public void MayoryPosicion()
     {
         int maximo=MaximoNumero(primero, contadorDeElementos());
         JTextArea areaSalida= new JTextArea();
         areaSalida.setText("El numero maximo es :"+maximo+"");
         JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
         BuscarPosicion(maximo);
     }
     private int MinimoNumero(Nodo oNodoTemporal, int numerador)
       {     
         if(oNodoTemporal==null)
            {           
            return ultimo.SacarInfo();
         
            }
        if(MinimoNumero(oNodoTemporal.SacarSig(), numerador-1)>=oNodoTemporal.SacarInfo())
            {                   
            return oNodoTemporal.SacarInfo();
            }
         
        return MinimoNumero(oNodoTemporal.SacarSig(),numerador-1);
    }
     
       public void contadorDeRepeticiones(int n)
       {
     
        int i=0;
     
        if(EstaVacia())
        {
             return;
        }
             Nodo p=primero;
             String salida="Resultado:\n";
              while (p!=null )
                  {
                  if(p.SacarInfo()==n)
                  {
                  i++;
                  }
                  p=p.SacarSig();
                 }
                  if(i==0)
                  {
                      salida=salida+"Dato no encontrado";
                  }
                  else
                  {
                      salida=salida+"Se repite:"+i+" veces";
                  }
       JTextArea areaSalida= new JTextArea();
       areaSalida.setText(salida);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
            }
       
        public void MenoryRepeticion()
     {
         int minimo=MinimoNumero(primero, contadorDeElementos());
         JTextArea areaSalida= new JTextArea();
         areaSalida.setText("El numero minimo es :"+minimo+"");
         JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
         contadorDeRepeticiones(minimo);
     }
   public void SumaPares_Recursivo(Nodo p,int s)
      {
          if(p==null)
          {
       JTextArea areaSalida= new JTextArea();
       areaSalida.setText("La Suma de todos loa  pares es:"+s);
       JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
              return ;
          } 
         if(p.SacarInfo()%2==0)
         { 
              SumaPares_Recursivo(p.SacarSig(),p.SacarInfo()+s);
         }
         else{   
        SumaPares_Recursivo(p.SacarSig(), s);
         }
      }
      public void SumaPares_Recursivo( )
      {
       SumaPares_Recursivo(primero,0);
      }
       private void MenoresNumero(Nodo oNodoTemporal, int numero,String acumulador)
       {     
         if(oNodoTemporal==null)
            {           
            JTextArea areaSalida= new JTextArea();
            areaSalida.setText("Los numeros menores de:"+numero+" son :"+acumulador);
            JOptionPane.showMessageDialog(null,areaSalida,"Salida",JOptionPane.INFORMATION_MESSAGE);
            return ;
         
            }
        if(oNodoTemporal.SacarInfo()<numero)
            {                   
            MenoresNumero(oNodoTemporal.SacarSig(), numero, acumulador+" , "+oNodoTemporal.SacarInfo());
            }
        else
        {
        MenoresNumero(oNodoTemporal.SacarSig(),numero,acumulador);
        }
    } 
   public void MenoresNumero(int n )
      {
       MenoresNumero(primero,n,"");
   }
 
   
   

}
   

   
bueno ojala entiendan todo corre ala perfeccion lo hize yo mismo con el programa netbeans
este paquete tiene todo estas funciones
 l1.Ingresar(2);
     l1.Ingresar
     l1.Ingresar
     l1.Ingresar
     l1.Ingresar
     l1.Ingresar
     l1.Ingresar
     l1.Visualizar
     l1.Buscar
     l1.Buscar
     l1.EliminarTodo_Recursivo

   
      l1.Visualizar
      l1.MayoryPosicion
      l1.MenoryRepeticion
      l1.Suma_Recursivo
      l1.SumaPares_Recursivo
       .MenoresNumero

 ;-) 


En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas
« Respuesta #1 en: 6 Junio 2009, 21:56 pm »

por que tanto interes en mencionar el ide si el ide no tiene absolutmanete nada que ver con el problema ni como se resuelbe ni como cual es la logica ni como enfrentar el problema


En línea

fiisi

Desconectado Desconectado

Mensajes: 19



Ver Perfil
Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas
« Respuesta #2 en: 8 Junio 2009, 23:04 pm »

por que tanto interes en mencionar el ide si el ide no tiene absolutmanete nada que ver con el problema ni como se resuelbe ni como cual es la logica ni como enfrentar el problema

disculpame pero no entiendo eso del ide soy casi un novato en java recien enpiezo
 lo puse porke hay personas que kieren ya resueltas para guiarse.

saludos
En línea

h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas
« Respuesta #3 en: 9 Junio 2009, 00:56 am »

Te recomiendo que utilices el código para JAVA antes de hacer un "desastre" en el post, y así hacerlo más legible.  ;)
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas
« Respuesta #4 en: 9 Junio 2009, 02:25 am »

por que tanto interes en mencionar el ide si el ide no tiene absolutmanete nada que ver con el problema ni como se resuelbe ni como cual es la logica ni como enfrentar el problema

disculpame pero no entiendo eso del ide soy casi un novato en java recien enpiezo
 lo puse porke hay personas que kieren ya resueltas para guiarse.

saludos


ide es el programa que se usa para generar codigo(jdeveloper eclipse jcreator )
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con punteros en listas.
Programación C/C++
samur88 6 5,834 Último mensaje 10 Enero 2011, 00:09 am
por samur88
Problemas al capturar un paquete de datos en mu online
Juegos y Consolas
Ana Rosa 0 2,813 Último mensaje 3 Marzo 2012, 13:16 pm
por Ana Rosa
Problemas listas
Programación C/C++
Cas980 1 2,115 Último mensaje 19 Mayo 2014, 09:21 am
por eferion
Problemas con funciones de una agenda con listas enlazadas [C]
Programación C/C++
Rhessus 2 3,278 Último mensaje 15 Julio 2016, 05:02 am
por Rhessus
Todos los problemas resueltos de un plumazo « 1 2 »
Foro Libre
FreeCellnet 11 6,516 Último mensaje 22 Septiembre 2021, 19:22 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines