Beruflich Dokumente
Kultur Dokumente
ARBOL
El rbol es una estructura de datos fundamental en la informtica, muy
utilizada en todos sus campos, por que se adapta a la representacin natural
de informaciones homogneas organizadas y de una gran comodidad y
rapidez de manipulacin.
Otra definicin de rbol es como tipo de grafo cclico, conexo y no dirigido.
Una estructura vaca o un elemento o clave de informacin (nodo) mas un numero finito
de estructuras tipo rbol, disjuntos, llamados subrboles. Si dicho numero de estructuras
es inferior o igual a dos, se tiene un rbol binario.
NODO
Un nodo es un punto de interseccin o unin de varios elementos que confluyen en el mismo
lugar.
Terminologa de rboles
La representacin y terminologa de los arboles se realiza con las tpicas notaciones de las
relaciones familiares en los rboles genealgicos: padre, hijo, hermano, ascendente,
descendiente, etc.
RAIZ: Todos loa rboles que no esta vacos tienen un nico nodo raz. Todos los dems
elementos o nodos derivan o descienden de el. El nodo Raz no tiene Padre es decir no es hijo de
ningn elemento
PADRE: X es padre de Y s y solo s el nodo X apunta a Y. Tambin se dice que X es antecesor
de Y.
HIJO: X es hijo de Y, s y solo s el nodo X es apuntado por Y. Tambin se dice que X es
descendiente directo de Y.
HERMANO: Dos nodos sern hermanos si son descendientes directos de un mismo nodo.
HOJA: Se le llama hoja o Terminal a aquellos nodos que no tienen ramificaciones (hijos).
NODO: Son los Vrtices o elementos del rbol.
hojas y a los nodos que no son ni raz ni hojas se les llama ramas o nodos
internos. Al conjunto de nodos comprendido entre dos nodos dados, que se
usa para llegar desde uno hasta otro se le llama camino. La longitud de un
camino representa la cantidad de nodos que lo conforman. Adems de estos
conceptos, en la terminologa de rboles encontramos otros conceptos, como
por ejemplo el grado de un nodo, que se define como el nmero de nodos
hijos (descendientes directos) que un nodo tiene. El grado de un rbol, es
entonces determinado por el nmero de nodos hijos que tiene el nodo de
mayor cantidad de hijos. En virtud de este concepto un rbol tenemos a los
arboles binarios, cuyo grado es dos, lo que significa que cualquier nodo del
rbol como mximo puede tener dos hijos y son los tipos de arboles ms
populares y de mayor aplicabilidad. Los arboles tiene muchas aplicaciones y
se suelen usar para representar informacin que se organiza en forma
jerrquica, es decir, segn un orden de prioridad o de importancia, por
ejemplo el ndice de un libro que est compuesto por unidades, las cuales
contienen captulos y estos se
Recorrido de un rbol
Podemos recorrer un rbol de expresin y mostrar los resultados de la
siguiente manera:
Def mostrarArbol(arbol):
if arbol == None: return
print arbol.datos,
mostrarArbol(arbol.izquierdo)
mostrarArbol(arbol.derecho)
En otras palabras, para mostrar un rbol primero hay que mostrar el
contenido de la raz, despus el subrbol izquierdo entero y seguidamente el
subrbol derecho entero. Esta forma de recorrer un rbol se
denomina preorden, porque el contenido de la raz aparece antes que el
contenido de los nodos hijos. Para el ejemplo anterior, el resultado es el
siguiente:
>>> arbol = Arbol('+', Arbol(1), Arbol('*', Arbol(2), Arbol(3)))
>>> mostrarArbol(arbol)
+1*23
UNA APLICACIN: ARBOLES DE EXPRESIN.
Una importante aplicacin de los rboles en la informtica es la
representacin de rboles sintcticos,es decir,rboles que contienen las
derivaciones de una gramtica necesarias para obtener una determinada
frase de un lenguaje.
Podemos etiquetar los nodos de un rbol con operandos y operadores de
manera que un rbol represente una expresin.Por ejemplo. en la figura 5 se
representa un rbol con la expresin aritmtica (x-y)*(z/t).
recorridos (pre, in y post orden), insertar nodo, eliminar nodo y buscar nodo.
Las operaciones de recorridos ya las vimos en el transcurso deeste trabajo
asi que nos centraremos en las operaciones restantes.
3.1.1.-Insercin
Esta es una operacin que se puede realizar eficientemente en un rbol
binario de bsqueda. La estructura crece a medida que se inserten
elementos al rbol.
Los pasos que deben realizarse para insertar un elemento a un ABB son los
siguientes:
Debe compararse el valor o dato a insertar con la raz del rbol. Si es
mayor, debe avanzarse hacia el subrbol derecho. Si es menor, debe
avanzarse hacia el subrbol izquierdo.
Repetir sucesivamente el paso anterior hasta que se cumpla alguna de las
siguientes condiciones:
1.- El subrbol derecho es igual a vaci, o el subrbol izquierdo es igual a
vaci; en cuyo caso se proceder a insertar el elemento en el lugar que le
corresponde.
2.-El valor o dato que quiere insertarse es igual a la raz del rbol; en cuyo
caso no se realiza la insercin.
CONCLUCIONES
Despus de haber realizado nuestro trabajo sobre arboles binarios de
bsqueda estamos en condiciones de afirmar que:
Efectivamente, el uso de esta estructura de datos es de mucha utilidad en
cuanto a resolver problemas de indexacin de ficheros se trata, pues dentro
de los arboles binarios tenemos toda la informacin ordenada
meticulosamente y se nos hace ms fcil acceder a ella.
Aunque es muy eficiente, esta estructura de datos tambin tiene defectos
sustanciales, por ejemplo el nmero de consultas en un rbol, para buscar
determinado dato aumenta rpidamente con el nmero de registros a
ordenar.
BIBLIOGRAFIA
1. http://www.programacionfacil.com/estructura_de_datos/arbol_binario.
2. http://www.dcc.uchile.cl/~lmateu/CC10A/Apuntes/arboles/index.html.
3. http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html.
4. www.lawebdelprogramador.com Foros Java
5. www.edutecne.utn.edu.ar/estruc-datos/estruc-datos.pdf
6. www.scielo.org.co/scielo.php?pid=S0034-74262006000200005...
7. arboles-bin.blogspot.com/2008/09/arboles-binarios.html
8. html.rincondelvago.com/estructuras-de-datos_2.html
9. holamundopascal.blogspot.com/2008/03/capitulo-8.html
10.informatica.utem.cl/~mcast/.../POO/MemoriaDinamicaYRecursividad.doc
11.www.identi.li/?topic=57281
12.www.codeforge.com/article/146557
13.creationexus.cl/foro/99.../438-Arbol-Binario-con-Iterador-en-JAVA.html
14.www.es-asp.net Foros ASP.NET Foro C#
15.www.sites.upiicsa.ipn.mx/polilibros/portal/.../arboles_balanceados.html
16.www.fceia.unr.edu.ar/estruc/2006/arbobihi.htm
17.blog.freshware.es/ordenar-alfabeticamente-un-arbol/
18.jsbsan.blogspot.com/2012/08/ejemplo-de-uso-de-arbol-binario-el.html
19.www.programacion.com/.../[tema_tipo_ayuda]_arbol_binario_en_octav...
20.informaciona.com/creacion-arboles-binarios-java/videos
21.oropezaroberto.awardspace.com ... Tutoriales Estructura de Datos
22.drinarincon.blogspot.com/2012/06/arbol-binario.html
23.ucaed2005.tripod.com/practicos/tp05.pdf
24.casanaariasyimi.es.tl/Arbol-binario-de-busqueda.htm
25.josue-nerd.blogspot.com/2013/04/arbol-binario-consola-c.html
26.casicodigo.blogspot.com/2012/11/arboles-binarios-de-busqueda-c.html
27.yaqui.mxl.uabc.mx/~mlglez/algoyest/ApuntesAlumnos/recorridos.doc
28.delta.cs.cinvestav.mx/~adiaz/anadis/BinTree.pdf
29.www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/.../aclase0810.pdf
30.www.zator.com/Cpp/E4_5_8b.htm
31.www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r89289.PDF
32.www.cartagena99.com/recursos/.../arbolesbinariosdebusqueda.pdf
33.elframeworkdeluis.wordpress.com/.../ejemplo-de-un-arbol-binario-en-ja..
34.informatica.uv.es/iiguia/AED/oldwww/2002_03/.../pr_06_2003.pdf
35.campus.claroline.net/claroline/backends/download.php?url...true..
36.https://sites.google.com/site/ebookbit/home/listas-y-arboles
37.es.scribd.com/.../Transformacion-de-un-Arbol-Gral-en-un-Arbol-Binario
38.foro.elhacker.net/...cc/graficar_arboles_binarios-t395920.0.html
39.www.ganimides.ucm.cl/haraya/doc/arbol_avl.pdf
40.garciagregorio.webcindario.com/ed/arboles_binarios2.pdf
41.www.madsgroup.org/docencia/alg/arboles_monticulos.pdf
42.www.lawebdelprogramador.com Foros Java
43.www.buenastareas.com Pgina principal Tecnologa
44.www.fi.unju.edu.ar/.../Estructura_de_Datos_y_Arboles_Equilibrados.pdf...
45.www.elrincondelc.com/nuevorincon/index.php?pag=codigos&id=4
46.sites.google.com/site/.../unidad-iii...y-arboles/3-7-arboles-binarios
47.gpd.sip.ucm.es/yolanda/EDI0910/TrArboles.pdf
48.www.esacademic.com/dic.nsf/eswiki/99819
49.informatica.utem.cl/~mcast/ESDATOS/POO/ApunteArboles.pdf
50.sistemas.ing.ula.ve/~e.velasquez/abb.html