Título: listas enlazadas problemas resueltos todo un paquete de 13 problemas Publicado por: fiisi 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 ;-) Título: Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas Publicado por: sapito169 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
Título: Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas Publicado por: fiisi 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 Título: Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas Publicado por: h0oke 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. ;)
Título: Re: listas enlazadas problemas resueltos todo un paquete de 13 problemas Publicado por: sapito169 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 ) |