Programación General > Java

 Listas doblemente enlazadas

(1/1)

_King_:
Hola a todos soy nuevo por aquí y quisiera saber si alguien me puede ayudar a realizar un programa de listas doblemente enlazadas que inserte al final y se ordenen con el método shaker sort, tengo estas condiciones para el códigos
for(i=inicio;i!=null;i=i.sig2)
for(i=q;i!=null;i=i.sig1)

 :hola:  saludos y gracias por su ayuda  :good:

manix:
hola

sabes, ese tema bastante tratado aca, si usas el buscador te vas a encontrar hasta un tutorial, dale y veras que encontraras resultados  ;)

saludos

_King_:
hola
si me podrías ayudar a buscarlo por que la verdad ya me la pase buscando y no encontré lo que necesito, tampoco el tutoría.
Lo que necesito es:
--Inserte al frente
--Inserte al final
--Eliminación
--Consulta de derecha a izquierda y de izquierda a derecha
--Que se ordenen con el método Shaker sort
O si me podrias ayudar a programarlo por mi cuenta  :comp:

Saludos y Gracias :hola:

manix:
hola

mejor te ayudamos con mucho gusto, puedes poner aca el el codigo que sea conveniente y que el que llevas hasta ahora.

_King_:
:lol: Hola
Ya tengo el código que necesitaba solo me hace falta una cosa pero no logro ponerle el método se Shaker sort  :hitcomp: , si me ayudas a ponérselo estaría muy agradecido  :gracias:  Saludos


--- Código: Text ---import java.util.*;import java.io.*;import javax.swing.*;  class Lista2 {     private Nodo cabeza;    private Nodo q;            private Nodo dir2=null;            private Nodo dir=null;      Lista2()   {        cabeza=null;   }   public boolean vacia()   {        return(cabeza ==null);   }    public void alfrente(Object info)   {                   if ( vacia())        {        Nodo p= new Nodo(info,cabeza,dir2);        cabeza=null;        p.sig=null;        cabeza=p;        q=p;        }                        else              {            Nodo p=new Nodo(info,null,dir2);            p.sig2=cabeza;            cabeza.sig=p;             p.sig=null;            cabeza=p;                   }                   }   public void eliminar(Object dato)       {        Nodo f,l;        boolean ban;        if(cabeza==null)            JOptionPane.showMessageDialog(null,"La lista esta vacia","Menu",JOptionPane.INFORMATION_MESSAGE);            else        {            ban=false;            l=null;            f=cabeza;            while(ban==false && f!=null)                                if(f.info==dato)                    if(l==null)                    {                        cabeza=cabeza.sig2;                        cabeza.sig=null;                        //f=null;                        ban=true;                    }                    else                    {                        if(f.sig2==null)                        {                            q=l;                            l.sig2=null;                            //f=null;                            ban=true;                        }                        else                        {                            l.sig2=f.sig2;                            //f=null;                            f.sig=l;                            ban=true;                        }                    }        }   }   public void alFinal(Object info)   {        if (vacia())        {            Nodo p=new Nodo(info, cabeza, dir2);            cabeza=p;            q=p;                    }        else         {            Nodo p=new Nodo(info,null,dir2);            q.sig2=p;            p.sig2=null;            p.sig=q;            q=p;                                    }        }    public void ver()    {             Nodo i;            JTextArea AreaSalida= new JTextArea();            String s="";                            for (i=cabeza;i!=null; i=i.sig2)        {                s+="" +i.info+ " ,";                         AreaSalida.setText(s);        JOptionPane.showMessageDialog(null,AreaSalida,"Izq-Der = "+s,JOptionPane.INFORMATION_MESSAGE );          i=i.sig2;             }            for (i=q; i!=null; i=i.sig)        {            JTextArea AreaSalida2= new JTextArea();            String s2="";                                 s2+="" +i.info+" ,";             AreaSalida2.setText(s2);    JOptionPane.showMessageDialog(null,AreaSalida2, "Der-Izqu = "+s2,JOptionPane.INFORMATION_MESSAGE );     i=i.sig;         }           }         } class Nodo{    public Object info;    public Nodo sig;      public Nodo sig2;    public Nodo(Object dato, Nodo dir, Nodo dir2)    {        info=dato;        sig=dir;        sig2=dir2;    }}  class ultima2{              public static void main(String[] args)   {        Lista2 listita=new Lista2();        int n;                     int i=2;        while(i!=-2)        {            int op=Integer.parseInt(JOptionPane.showInputDialog(null,"1.- Insertar al frente.n2.- Insertar al final.n3.- Eliminar.n4.- Vern5.- Salir.","Menu",JOptionPane.INFORMATION_MESSAGE));            switch(op)            {                case 1:                    n=Integer.parseInt(JOptionPane.showInputDialog(null,"Núnero a insertar","Menu",JOptionPane.PLAIN_MESSAGE));                    listita.alfrente(n);                    break;                case 2:                    n=Integer.parseInt(JOptionPane.showInputDialog(null,"Número a insertar","Menu",JOptionPane.PLAIN_MESSAGE));                    listita.alFinal(n);                    break;                case 3:                    n=Integer.parseInt(JOptionPane.showInputDialog(null,"Número a Eliminar","Menu",JOptionPane.PLAIN_MESSAGE));                        listita.eliminar(n);                          listita.ver();                                     break;                case 4:                    n=Integer.parseInt(JOptionPane.showInputDialog(null,"1 = izq-der y 2 = der-izq","Menu",JOptionPane.PLAIN_MESSAGE));                        listita.ver();                        break;                case 5:                        System.exit(0);                    break;                                                                    }         }                    }} 

Navegación

[0] Índice de Mensajes

Ir a la versión completa