inteligencia1/Arbol.javainteligencia1/Arbol.javapackage inteligencia1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.LinkedList;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
publicclassArbolextendsJComponent{
BufferedImage imagen;
LinkedList<Nodo> lista;
int x,y;
int ancho,alto;
boolean bfs;
boolean inicio=false;
LinkedList<Nodo> cola =newLinkedList();
LinkedList<Nodo> pila =newLinkedList();
Graphics g;
publicArbol(){
this.setBounds(450,70,440,500);
this.setBackground(Color.DARK_GRAY);
imagen =newBufferedImage(getWidth(),getHeight(),BufferedImage.TYPE_3BYTE_BGR);
imagen.getGraphics().setColor(Color.LIGHT_GRAY );
imagen.getGraphics().fillRect(0,0,440,500);
}
@Override
publicvoid paint(Graphics gr)
{
gr.drawImage(imagen,0,0,this);
}
publicvoid addListPaint(LinkedList<Nodo> lista){
this.lista=null;
this.lista=lista;
x=y=0;
x=17;
y=14;
int xfle,yfle;
g=imagen.getGraphics();
g.setColor(Color.LIGHT_GRAY );
g.fillRect(0,0,450,500);
if(lista!=null){
//Dibujar los nodos
for(Nodo nn : lista){
g.setColor(Color.WHITE );
g.fillOval(nn.getXpos(), nn.getYpos(), nn.getAncho(), nn.getAlto());
g.setColor(Color.BLACK);
g.drawString(nn.getName(),nn.getXpos()+10, nn.getYpos()+15);
}
//Lineas
for(Nodo raiz : lista){
if(raiz.getNodoListCount()>0){
for(Nodo hijo : raiz.getListNodo()){
g.setColor(Color.WHITE );
if(raiz.getXpos()==hijo.getXpos()&& raiz.getYpos()==hijo.getYpos())
{
g.drawOval(raiz.getXpos()-10, raiz.getYpos()-10,30,30);
}else{
g.setColor(Color.blue);
if(raiz.isExists(hijo)&& hijo.isExists(raiz)){
g.setColor(Color.RED );
g.drawLine(raiz.getXpos()+x, raiz.getYpos()+y, hijo.getXpos()+x,hijo.getYpos()+y);
}else{
xfle=((int)(hijo.getXpos()+raiz.getXpos())/2);
yfle=((int)(hijo.getYpos()+ raiz.getYpos())/2);
xfle=(int)(raiz.getXpos()+xfle)/2;
yfle=(int)(raiz.getYpos()+yfle)/2;
g.drawLine(raiz.getXpos()+x, raiz.getYpos()+y, hijo.getXpos()+x,hijo.getYpos()+y);
g.drawString("♦",x+xfle,y+yfle);
}
}
}
}
}
}
repaint();
}
privatevoidMarcarNegro(Nodo nodoactual){
g=imagen.getGraphics();
g.setColor(Color.BLACK );
g.fillOval(nodoactual.getXpos(), nodoactual.getYpos(), nodoactual.getAncho(), nodoactual.getAlto());
g.setColor(Color.WHITE);
g.drawString(nodoactual.getName(),nodoactual.getXpos()+10, nodoactual.getYpos()+15);
repaint();
try{
Thread.sleep(1000);
}catch(InterruptedException ex){
}
g.setColor(Color.DARK_GRAY );
}
priv.