Árbol (informática)
Que es?
En ciencias de la informática, un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él. Se dice que un nodo es padre de un nodo si existe un enlace desde hasta (en ese caso, también decimos que es hijo de ). Sólo puede haber un único nodo sin padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce como hoja. Los demás nodos (tienen padre y uno o varios hijos) se les conoce como rama.
Mi árbol Genealógico.
Recorrido de Arboles
Árbol binario
- Preorden: (raíz, izquierdo, derecho). Para recorrer un árbol binario no vacío en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz:
- Visite la raíz
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho
- Inorden: (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío en inorden (simétrico), hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Visite la raíz
- Atraviese el sub-árbol derecho
- Postorden: (izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío en postorden, hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho
- Visite la raíz
Programa Ejemplo:package javaapplication3;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.tree.*;import java.util.*;/**** @author alumno*/public class Main {/*** @param args the command line arguments*/public static void main(String[] args){ JFrame frame = new MainTreeFrame();frame.show();}}class MainTreeFrame extends JFrame{DefaultMutableTreeNode root = new DefaultMutableTreeNode("Mundo");DefaultMutableTreeNode arge = new DefaultMutableTreeNode("Argentina");DefaultMutableTreeNode sant = new DefaultMutableTreeNode("Santa Fe");DefaultMutableTreeNode rafa = new DefaultMutableTreeNode("Rafaela");DefaultMutableTreeNode rosa = new DefaultMutableTreeNode("Rosario");DefaultMutableTreeNode safe = new DefaultMutableTreeNode("Santa Fe");DefaultMutableTreeNode vena = new DefaultMutableTreeNode("Venado Tuerto");DefaultMutableTreeNode vill = new DefaultMutableTreeNode("Villa Constitucion");DefaultMutableTreeNode cord = new DefaultMutableTreeNode("Cordoba");DefaultMutableTreeNode codo = new DefaultMutableTreeNode("Cordoba");DefaultMutableTreeNode cbro = new DefaultMutableTreeNode("Cura Brochero");DefaultMutableTreeNode rcua = new DefaultMutableTreeNode("Rio Cuarto");DefaultMutableTreeNode chac = new DefaultMutableTreeNode("Chaco");DefaultMutableTreeNode resi = new DefaultMutableTreeNode("Resistencia");DefaultMutableTreeNode vang = new DefaultMutableTreeNode("Villa Angela");DefaultMutableTreeNode chil = new DefaultMutableTreeNode("Chile");DefaultMutableTreeNode regi = new DefaultMutableTreeNode("Region Metropolitana");DefaultMutableTreeNode schi = new DefaultMutableTreeNode("Santiago de Chile");public MainTreeFrame(){ setTitle("SimpleTree");setSize(300, 200);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}} );root.add(arge); // Enlazado de nodosarge.add(sant); // Enlazado de nodossant.add(rafa); // Enlazado de nodossant.add(rosa); // Enlazado de nodossant.add(safe); // Enlazado de nodossant.add(vena); // Enlazado de nodossant.add(vill); // Enlazado de nodosarge.add(cord); // Enlazado de nodoscord.add(codo); // Enlazado de nodoscord.add(cbro); // Enlazado de nodoscord.add(rcua); // Enlazado de nodosarge.add(chac); // Enlazado de nodoschac.add(resi); // Enlazado de nodoschac.add(vang); // Enlazado de nodosroot.add(chil); // Enlazado de nodoschil.add(regi); // Enlazado de nodosregi.add(schi); // Enlazado de nodosJTree tree = new JTree(root);Container contentPane = getContentPane();contentPane.add(new JScrollPane(tree));Enumeration hijos = sant.children(); // Enumeracion de hijoswhile ( hijos.hasMoreElements() ) // Enumeracion de hijos{ // Enumeracion de hijosSystem.err.println("Hijos de Santa Fe : "+hijos.nextElement()); // Enumeracion de hijos} // Enumeracion de hijosboolean hoja = vena.isLeaf(); // Consulta HojaSystem.err.println("Es Venado Tuerto hoja : "+hoja); // Consulta HojaEnumeration breadth = root.breadthFirstEnumeration(); // Enumeracion Nodoswhile ( breadth.hasMoreElements() ) // Enumeracion Nodos{ // Enumeracion NodosSystem.err.println("Breadth First : "+breadth.nextElement()); // Enumeracion Nodos} // Enumeracion NodosEnumeration depth = root.depthFirstEnumeration(); // Enumeracion Nodoswhile ( depth.hasMoreElements() ) // Enumeracion Nodos{ // Enumeracion NodosSystem.err.println("Depth First : "+depth.nextElement()); // Enumeracion Nodos} // Enumeracion NodosEnumeration preorder = root.preorderEnumeration(); // Enumeracion Nodoswhile ( preorder.hasMoreElements() ) // Enumeracion Nodos{ // Enumeracion NodosSystem.err.println("Pre Order : "+preorder.nextElement()); // Enumeracion Nodos} // Enumeracion NodosEnumeration postorder = root.postorderEnumeration(); // Enumeracion Nodoswhile ( postorder.hasMoreElements() ) // Enumeracion Nodos{ // Enumeracion NodosSystem.err.println("Post Order : "+postorder.nextElement()); // Enumeracion Nodos} // Enumeracion Nodos}}
No hay comentarios.:
Publicar un comentario