árboles en java

Ana
03 de Diciembre del 2003
¿Alguien puede mandarme la implementación de árboles no binarios en java? Gracias

S
03 de Diciembre del 2003
Yo tambien lo estoy buscando ,si ya lo has encontrado te agredeceria q me lo mandase, yo necesito arboles B. Hay una página con implementación pero yo soy nueva en java y aun no lo entiendo.oviedo3.ccu.uniovi.es/martin/EDI/doc/overview-tree.html

franquito
03 de Diciembre del 2003
/*Hojala te sirva de ayuda cualquier duda, solo escribeme a [email protected]*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

// Esta clase coge un array de Strings, haciendo que el primer elemento
// del array sea un nodo y el resto sean ramas de ese nodo
// Con ello se consiguen las ramas del rbol general cuando se pulsa
// el botn de test

public class java1414 extends JPanel {
String datos[][] = {
{ "Colores","Rojo","Verde","Azul" },
{ "Sabores","Salado","Dulce","Amargo" },
{ "Longitud","Corta","Media","Larga" },
{ "Intensidad","Alta","Media","Baja" },
{ "Temperatura","Alta","Media","Baja" },
{ "Volumen","Alto","Medio","Bajo" },
};
static int i=0;
DefaultMutableTreeNode raiz,rama,seleccion;
JTree arbol;
DefaultTreeModel modelo;

public java1414() {
setLayout( new BorderLayout() );
raiz = new DefaultMutableTreeNode( "raiz" );
arbol = new JTree( raiz );
// Se aade el rbol y se hace sobre un ScrollPane, para
// que se controle automticamente la longitud del rbol
// cuando est desplegado, de forma que aparecer una
// barra de desplazamiento para poder visualizarlo en su
// totalidad
add( new JScrollPane( arbol ),BorderLayout.CENTER );
// Se obtiene el modelo del rbol
modelo =(DefaultTreeModel)arbol.getModel();
// Y se aade el botn que va a ir incorporando ramas
// cada vez que se pulse
JButton botonPrueba = new JButton( "Pulsame" );
botonPrueba.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent evt ) {
if( i < datos.length ) {
rama = new Rama( datos[i++] ).node();
// Control de la tlima seleccin realizada
seleccion = (DefaultMutableTreeNode)
arbol.getLastSelectedPathComponent();
if( seleccion == null )
seleccion = raiz;
// El modelo crear el evento adecuado, y en respuesta
// a l, el rbol se actualizar automticamente
modelo.insertNodeInto( rama,seleccion,0 );
}
}
} );

// Cambio del color del botn
botonPrueba.setBackground( Color.blue );
botonPrueba.setForeground( Color.white );
// Se crea un panel para contener al botn
JPanel panel = new JPanel();
panel.add( botonPrueba );
add( panel,BorderLayout.SOUTH );
}

public static void main( String args[] ) {
JFrame frame = new JFrame( "Tutorial de Java, Swing" );
frame.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ) {
System.exit( 0 );
}
});
frame.getContentPane().add( new java1414(),BorderLayout.CENTER );
frame.setSize( 200,500 );
frame.setVisible( true );
}
}
class Rama {
DefaultMutableTreeNode r;
public Rama( String datos[] ) {
r = new DefaultMutableTreeNode( datos[0] );
for( int i=1; i < datos.length; i++ )
r.add( new DefaultMutableTreeNode( datos[i] ) );
}

public DefaultMutableTreeNode node() {
return( r );
}
}