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;
}
}
}
}