ayuda con lista

yuynan
15 de Noviembre del 2005
estoy trabajando con listasimple y estoy haciendo teoria de conjunto o sea AUB,AnB,(A-B)U(B-A),A COMPLEMENTO, B COMPLEMENTO EN UNALISTA TENGO LOS ELEMENTOS A Y EN OTRA LOS ELEMENTOS DE B COMO HAGO PARA RECORER LAS 2 LISTA Y REALIZAR LAS OPERACIONES ANTES DICHAS
import java.awt.*;
import javax.swing.*;
import java.io.*;


class practica extends Frame
{
Menu m1;
MenuBar me;
MenuItem mi1,mi2,mi3,mi4,mi5;
Button b1,b2,b3;
TextField t1,t2;
int a,b;
String au,au1;
Label l1,l2,l3;
Lista li;
Listasimple1 s1;
DataOutputStream Crear;
DataInputStream leer;




public practica(String s)
{
super(s);
setLayout(null);
li=new Lista();
s1=new Listasimple1();
//***menu bar *****////
me=new MenuBar();
m1=new Menu("opciones");
mi1=new MenuItem("Insertar Conjuntos");
mi2=new MenuItem("Operaciones de conjunto");
mi3=new MenuItem("Leer archivo");
mi4=new MenuItem("Ver Resultados");
mi5=new MenuItem("salir");
//****Label*////////
l1=new Label("Digite los dos conjuntos");
l2=new Label("conjunto A");
l3=new Label("conjunto B");
/***Textfield*///////
t1=new TextField();
t2=new TextField();

///***Button*****/////
b1=new Button("Insertar");
b2=new Button("Salir");
b3=new Button("Union Entre Conjuntos");

CrearUnArchivo();

///*****Ubicacion ***///////
l1.setBounds(90,50,350,30);
l2.setBounds(90,100,80,30);
b3.setBounds(40,60,170,30);

t1.setBounds(170,100,80,30);
t2.setBounds(170,150,80,30);

l3.setBounds(90,150,80,30);

b1.setBounds(90,200,80,30);
b2.setBounds(180,200,80,30);

///***agregacion***//////
add(l1);add(l2);add(l3);add(t1);add(b1);add(b2);add(t2);add(b3);

setMenuBar(me);
me.add(m1);
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
m1.add(mi5);

///****visibilidad*****////
l1.setVisible(true);
l2.setVisible(true);
l3.setVisible(true);
t1.setVisible(true);
t2.setVisible(true);
b1.setVisible(true);
b2.setVisible(true);
b3.setVisible(false);
}

public static void main(String V[])
{
practica pa;
pa=new practica("********TEORIA DE CONJUNTOS*******");
pa.setSize(400,400);
pa.show();
}

public boolean action(Event e, Object o)
{
if(e.target==b1)
{
au=t1.getText();
au1=t2.getText();
li.crear(au);
s1.crear1(au1);
li.mostrar();
s1.mostrar1();
t1.setText("");
t2.setText("");
EscribirArchivo(au,au1);

}


if(e.target==b2)
{
hide();
dispose();
}
if(e.target==mi1)
{
l1.setVisible(true);
l2.setVisible(true);
l3.setVisible(true);

t1.setVisible(true);
t2.setVisible(true);
b1.setVisible(true);
b2.setVisible(true);
b3.setVisible(false);
}

if(e.target==mi2)
{

l1.setVisible(false);
l2.setVisible(false);
l3.setVisible(false);

t1.setVisible(false);
t2.setVisible(false);
b1.setVisible(false);
b2.setVisible(false);
b3.setVisible(true);

}
if(e.target==b3)
{

}
return true;
}

public void CrearUnArchivo()
{
try
{
Crear=new DataOutputStream(new FileOutputStream("yuynan.dat"));
JOptionPane.showMessageDialog(null,"el Archivo se creo bien","Crear",1);

}
catch(IOException ee)
{
System.err.print("Problem to create"+ee.toString());
System.exit(1);
}

}
public void EscribirArchivo(String n,String e)
{
try
{
Crear.writeUTF(n);
Crear.writeUTF(e);
JOptionPane.showMessageDialog(null,"inserto","inserto",1);

}
catch(IOException ee)
{
System.err.print("error al escribir"+ee.toString());
System.exit(1);

}
}
class Lista
{
Nodo CAB=null;
class Nodo
{
String info;
Nodo prox;
public Nodo()
{
}
}
public Lista()
{
}
public void crear(String aux2)
{
Nodo x;
x=new Nodo();
x.info=aux2;
x.prox=CAB;
CAB=x;
}
public void mostrar()
{
Nodo x;
x=CAB;
while(x!=null)
{
System.out.print(" "+x.info);
x=x.prox;
}
System.out.println("");
}

}

class Listasimple1
{
Nodo1 CAB1=null;
class Nodo1
{
String info1;
Nodo1 prox1;
public Nodo1()
{
}
}
public Listasimple1()
{
}
public void crear1(String aux)
{
Nodo1 x1;
x1=new Nodo1();
x1.info1=aux;
x1.prox1=CAB1;
CAB1=x1;
}
public void mostrar1()
{
Nodo1 x1;
x1=CAB1;
while(x1!=null)
{
System.out.print(" "+x1.info1);
x1=x1.prox1;
}
System.out.println("");
}

}
}

Eric Mignot
15 de Noviembre del 2005
Hola,

Si lo que estas esperando al enviar todo tu codigo es que hagamos el trabajo entero, olvidalo ;-).

Para recorrer dos listas, solamente tienes que hacer dos bucles, el secundo (el bucle anidado) dentro de lo primero, cada uno con su propria variable.