• Lunes 29 de Abril de 2024, 21:00

Autor Tema:  Listas doblemente enlazadas  (Leído 5580 veces)

_King_

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Listas doblemente enlazadas
« en: Martes 18 de Noviembre de 2008, 09:20 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Listas doblemente enlazadas
« Respuesta #1 en: Martes 18 de Noviembre de 2008, 09:30 »
0
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_

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Listas doblemente enlazadas
« Respuesta #2 en: Jueves 20 de Noviembre de 2008, 21:51 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Listas doblemente enlazadas
« Respuesta #3 en: Viernes 21 de Noviembre de 2008, 02:47 »
0
hola

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

_King_

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Listas doblemente enlazadas
« Respuesta #4 en: Viernes 21 de Noviembre de 2008, 09:44 »
0
: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
  1. import java.util.*;
  2. import java.io.*;
  3. import javax.swing.*;
  4.  
  5.  class Lista2
  6. {
  7.     private Nodo cabeza;
  8.     private Nodo q;
  9.             private Nodo dir2=null;
  10.             private Nodo dir=null;
  11.  
  12.  
  13.    Lista2()
  14.    {
  15.         cabeza=null;
  16.    }
  17.    public boolean vacia()
  18.    {
  19.         return(cabeza ==null);
  20.    }
  21.    public void alfrente(Object info)
  22.    {         
  23.     
  24.     if ( vacia())
  25.         {
  26.         Nodo p= new Nodo(info,cabeza,dir2);
  27.         cabeza=null;
  28.         p.sig=null;
  29.         cabeza=p;
  30.         q=p;
  31.         }
  32.                  
  33.      else
  34.         
  35.      {
  36.             Nodo p=new Nodo(info,null,dir2);
  37.             p.sig2=cabeza;
  38.             cabeza.sig=p;
  39.             p.sig=null;
  40.             cabeza=p;  
  41.            
  42.      }
  43.                 
  44.    }
  45.    public void eliminar(Object dato)    
  46.    {
  47.         Nodo f,l;
  48.         boolean ban;
  49.         if(cabeza==null)
  50.             JOptionPane.showMessageDialog(null,"La lista esta vacia","Menu",JOptionPane.INFORMATION_MESSAGE);
  51.     
  52.         else
  53.         {
  54.             ban=false;
  55.             l=null;
  56.             f=cabeza;
  57.             while(ban==false && f!=null)
  58.                
  59.                 if(f.info==dato)
  60.                     if(l==null)
  61.                     {
  62.                         cabeza=cabeza.sig2;
  63.                         cabeza.sig=null;
  64.                         //f=null;
  65.                         ban=true;
  66.                     }
  67.                     else
  68.                     {
  69.                         if(f.sig2==null)
  70.                         {
  71.                             q=l;
  72.                             l.sig2=null;
  73.                             //f=null;
  74.                             ban=true;
  75.                         }
  76.                         else
  77.                         {
  78.                             l.sig2=f.sig2;
  79.                             //f=null;
  80.                             f.sig=l;
  81.                             ban=true;
  82.                         }
  83.                     }
  84.         }
  85.    }
  86.    public void alFinal(Object info)
  87.    {
  88.         if (vacia())
  89.         {
  90.             Nodo p=new Nodo(info, cabeza, dir2);
  91.             cabeza=p;
  92.             q=p;           
  93.         }
  94.         else
  95.         {
  96.             Nodo p=new Nodo(info,null,dir2);
  97.             q.sig2=p;
  98.             p.sig2=null;
  99.             p.sig=q;
  100.             q=p;
  101.            
  102.                
  103.         }
  104.    
  105.     }
  106.     public void ver()
  107.     {
  108.     
  109.         Nodo i;
  110.         
  111.     JTextArea AreaSalida= new JTextArea();
  112.             String s="";       
  113.                
  114.     for (i=cabeza;i!=null; i=i.sig2)
  115.         {
  116.                 s+="" +i.info+ " ,";
  117.                
  118.          AreaSalida.setText(s);
  119.         JOptionPane.showMessageDialog(null,AreaSalida,"Izq-Der = "+s,JOptionPane.INFORMATION_MESSAGE );
  120.          i=i.sig2;
  121.      
  122.         }
  123.        
  124.     for (i=q; i!=null; i=i.sig)
  125.         {
  126.             JTextArea AreaSalida2= new JTextArea();
  127.             String s2="";
  128.                
  129.                 s2+="" +i.info+" ,";
  130.         
  131.  
  132.     AreaSalida2.setText(s2);
  133.     JOptionPane.showMessageDialog(null,AreaSalida2, "Der-Izqu = "+s2,JOptionPane.INFORMATION_MESSAGE );
  134.     i=i.sig;
  135.          }
  136.     
  137.    
  138.     }
  139.          
  140. }
  141. class Nodo
  142. {
  143.     public Object info;
  144.     public Nodo sig;  
  145.     public Nodo sig2;
  146.     public Nodo(Object dato, Nodo dir, Nodo dir2)
  147.     {
  148.         info=dato;
  149.         sig=dir;
  150.         sig2=dir2;
  151.     }
  152. }
  153.  class ultima2
  154. {           
  155.    public static void main(String[] args)
  156.    {
  157.         Lista2 listita=new Lista2();
  158.         int n;
  159.          
  160.    
  161.         int i=2;
  162.         while(i!=-2)
  163.         {
  164.             int op=Integer.parseInt(JOptionPane.showInputDialog(null,"1.- Insertar al frente.n2.- Insertar al final.n3.- Eliminar.n4.- Vern5.- Salir.","Menu",JOptionPane.INFORMATION_MESSAGE));
  165.             switch(op)
  166.             {
  167.                 case 1:
  168.                     n=Integer.parseInt(JOptionPane.showInputDialog(null,"Núnero a insertar","Menu",JOptionPane.PLAIN_MESSAGE));
  169.                     listita.alfrente(n);
  170.                     break;
  171.                 case 2:
  172.                     n=Integer.parseInt(JOptionPane.showInputDialog(null,"Número a insertar","Menu",JOptionPane.PLAIN_MESSAGE));
  173.                     listita.alFinal(n);
  174.                     break;
  175.                 case 3:
  176.                     n=Integer.parseInt(JOptionPane.showInputDialog(null,"Número a Eliminar","Menu",JOptionPane.PLAIN_MESSAGE));
  177.                         listita.eliminar(n);
  178.                          listita.ver();                
  179.                     break;
  180.                 case 4:
  181.                     n=Integer.parseInt(JOptionPane.showInputDialog(null,"1 = izq-der y 2 = der-izq","Menu",JOptionPane.PLAIN_MESSAGE));
  182.                         listita.ver();
  183.                         break;
  184.                 case 5:
  185.                         System.exit(0);
  186.                     break;
  187.                                                        
  188.             }
  189.         }
  190.                
  191.     }
  192. }
  193.