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
Ir a la versión completa