Está en la página 1de 12

Estructura de Datos

(Estructuras no lineales estticas y dinmicas)

Presentado por:

MARCOS OMAR CRUZ ORTEGA


(Actual alumno de Ing. en Sistemas Computacionales)

Contenido
1 2 3 Introduccin .......................................................................................................... 3 Objetivo ................................................................................................................ 3 Arboles ................................................................................................................. 4 3.1 3.2 3.3 3.4 rbol binario .................................................................................................. 5 Operaciones con rboles binarios .................................................................... 5 rbol binario de bsqueda .............................................................................. 7 Recorrido de rboles ...................................................................................... 8 Notacin PreOrden .................................................................................. 8 Notacin InOrden .................................................................................... 8 Notacin PostOrden ................................................................................. 8

3.4.1 3.4.2 3.4.3 3.5

Algunas cosas para tomar en cuenta ................................................................ 9 En relacin con otros nodos: .................................................................. 10 Conceptos bsicos en cuanto a la posicin dentro del rbol: ................... 10

3.5.1 3.5.2 4

Conclusin .......................................................................................................... 12

1 Introduccin
Una de las estructuras de datos ms importantes y prominentes que existen es el rbol. No es un rbol en el sentido botnico de la palabra, sino uno de naturaleza ms abstracta. Todos hemos visto usar tales rboles para describir conexiones familiares. Los dos tipos ms comunes de rboles familiares son el rbol de antecesores, que empieza en un individuo y va hacia atrs a travs de padres, abuelos, etc., y el rbol de descendientes, que va hacia delante a travs de hijos, nietos, etc. De igual forma en informtica Los rboles proporcionan una capacidad enorme para expresar la idea de jerarqua

2 Objetivo
En objetivo del presente trabajo es el de descubrir los rboles como paradigma de los tipos Recursivos de Datos, Cundo utilizar un rbol para almacenar informacin?, Diferenciar las formas de recorrer un rbol, todo esto de una forma resumida.

3 Arboles
En ciencias de la computacin, un rbol es una estructura de datos comnmente usada que emula la estructura de un rbol con un conjunto de nodos conectados. Cada nodo tiene cero o ms nodos hijos, que estn por debajo de l (en ciencias de la computacin, al contrario que en la naturaleza, los rboles crecen hacia abajo, no hacia arriba), El nodo del cual uno nodo es hijo es llamado nodo padre de este. Un hijo tiene como mximo un padre; un nodo sin padre es llamado nodo raz (o simplemente raz). Los nodos sin hijos son llamados hojas. Una de las estructuras de datos ms importantes en programacin es el rbol. Un rbol es una estructura que est compuesta por un dato y varios rboles. Dado un nodo cualquiera de la estructura, podemos considerarlo como una estructura independiente, es decir un nodo cualquiera puede ser considerado como la raz de una rbol completo. En teora de grafos, un rbol es un grafo conectado acclico. Un rbol con raz es como un grafo con un vrtice seleccionado como la raz. En ese caso, slo dos vrtices conectados con el lado heredan una relacin de padrehijo. Un grafo acclico con mltiples componentes conectados o un conjunto de rboles con raz se llama bosque. Operaciones comunes en arboles son: Enumerar todos los elementos Buscar un elemento Aadir un nuevo tem en una cierta posicin del rbol Borrar un elemento Remover una seccin completa de un rbol. Aadir una seccin completa a un rbol. Encontrar la raz de cualquier nodo

Usos comunes de los rboles son: Manipular datos jerrquicos Para hacer la informacin fcilmente Manipular listas ordenadas de datos.

Aqu tenemos un ejemplo de la representacin grafica de un rbol

3.1 rbol binario


Un rbol Binario es un tipo de rbol ordenado, y hay una relacin uno a uno entre los arboles binarios y los arboles ordenados generales

Hay muchas formas diferentes de representar un rbol, representaciones comunes muestran los nodos como variables alojados en un montculo como punteros a sus hijos, sus padres. O juntos, o como elementos de un array, con relaciones entre determinadas posiciones en el arreglo.

3.2 Operaciones con rboles binarios


Con los rboles binarios es posible definir algunas operaciones primitivas, estas operaciones son en el sentido de saber la informacin de un nodo y sirven para desplazarse en el rbol, hacia arriba o hacia abajo. 5

info(p) Que devuelve el contenido del nodo apuntado por p. left(p) Devuelve un apuntador al hijo izquierdo del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p es una hoja. right(p) Devuelve un apuntador al hijo derecho del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p es una hoja. father(p) Devuelve un apuntador al padre del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p es la raz. brother(p) Devuelve un apuntador al hermano del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p no tiene hermano. Estas otras operaciones son lgicas, tienen que ver con la identidad de cada nodo: isLeft(p) Devuelve el valor true si el nodo actual es el hijo izquierdo del nodo apuntado por p, y false en caso contrario. isRight(p) Devuelve el valor true si el nodo actual es el hijo derecho del nodo apuntado por p, y false en caso contrario. isBrother(p) Devuelve el valor true si el nodo actual es el hermano del nodo apuntado por p, y false en caso contrario.

En la construccin de un rbol binario son tiles las operaciones makeTree, setLeft y setRight. La operacin makeTree(x) crea un nuevo rbol binario que consta de un nico nodo con un campo de informacin x y devuelve un apuntador a ese nodos. La operacin setLeft(p,x) acepta un apuntador p a un nodo de rbol binario sin hijo izquierdo. Crea un nuevo hijo izquierdo de node(p) con el campo de informacin x. La operacin setRight(p,x) es similar, excepto que crea un hijo derecho.

3.3 rbol binario de bsqueda


La bsqueda en rboles binarios es un mtodo de bsqueda simple, dinmico y eficiente considerado como uno de los fundamentales en Ciencia de la Computacin. De toda la terminologa sobre rboles, tan slo recordar que la propiedad que define un rbol binario es que cada nodo tiene a lo ms un hijo a la izquierda y uno a la derecha. Para construir los algoritmos consideraremos que cada nodo contiene un registro con un valor clave a travs del cual efectuaremos las bsquedas. En las implementaciones que presentaremos slo se considerar en cada nodo del rbol un valor del tipo Elemento aunque en un caso general ese tipo estar compuesto por dos: una clave indicando el campo por el cual se realiza la ordenacin y una informacin asociada a dicha clave o visto de otra forma, una informacin que puede ser compuesta en la cual existe definido un orden. Un rbol binario de bsqueda(ABB) es un rbol binario con la propiedad de que todos los elementos almacenados en el subrbol izquierdo de cualquier nodo x son menores que el elemento almacenado en x ,y todos los elementos almacenados en el subrbol derecho de x son mayores que el elemento almacenado en x.

La figura de abajo muestra dos ABB construidos en base al mismo conjunto de enteros:

Obsrvese la interesante propiedad de que si se listan los nodos del ABB en inorden nos da la lista de nodos ordenada. Esta propiedad define un mtodo de ordenacin similar al Quicksort, con el nodo raz jugando un papel similar al del elemento de particin del Quicksort aunque con los ABB hay un gasto extra de memoria mayor debido a los punteros. La propiedad de ABB hace que sea muy simple disear un procedimiento para realizar la bsqueda.

3.4 Recorrido de rboles


3.4.1 Notacin PreOrden
1) Visita Raz 2) Visitar Izquierdo 3) Visitar Derecho

El resultado de visitar un rbol como el de la figura es B-A-C

3.4.2 Notacin InOrden


1) Visitar Izquierdo 2) Visita Raz 3) Visitar Derecho

El resultado de visitar en orden el rbol de la figura es A-B -C

3.4.3 Notacin PostOrden


1) Visitar Izquierdo 2) Visitar Derecho 3) Visita Raz El resultado

El resultado de visitar en orden el rbol de la figura es A-C-B

3.5 Algunas cosas para tomar en cuenta


Los rboles pueden procesarse en forma recursiva y son muy adaptables a pruebas matemticas.

La idea de estructura jerrquica es muy usada en la prctica. Por ejemplo, los libros son a menudo organizados como una sucesin de captulos cada uno de los cuales son una sucesin de secciones que puede tener subdivisiones, y as sucesivamente.

Una empresa puede organizarse como las colecciones de unidades comerciales cada uno de las cuales pueden tener varias secciones. Las secciones, a su vez, pueden tener secciones mltiples, y as sucesivamente.

El software es organizado como una coleccin de mdulos cualquiera que puede constituirse de varios submdulos, con el nivel de refinamiento que los diseadores encuentren apropiado.

En cierto nivel, los mdulos se expresan en unidades bsicas como los objetos, los mtodos, o procedimientos.

En otros trminos, las estructuras jerarquas proporcionan una eficaz la manera de organizar la Informacin.

Los rboles proporcionan una capacidad enorme para expresar la idea de jerarqua. Ellos son objetos formales, matemticos.

3.5.1 En relacin con otros nodos:

Nodo Padre: Nodo que contiene un puntero al nodo actual. En un rbol un nodo solo puede tener un nodo 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. En la figura B es padre de E y F. Nodo Hijo: Cualquiera de los nodos apuntados por uno de los nodos del abol. Un nodo puede tener varios hijos.. 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. En la figura: E es hijo de B. Hermano: Dos nodos sern hermanos si son descendientes directos de un mismo nodo. En la figura E y F son hermanos.

3.5.2 Conceptos bsicos en cuanto a la posicin dentro del rbol:

Nodo Raz: Es el nico nodo del rbol que no tiene padre. Este es el nodo que usaremos para referirnos al rbol. En la figura A es el nodo raz. Nodo Hoja: Nodo que no tiene hijos. Se llama hoja o terminal a aquellos nodos que no tienen ramificaciones ( hijos ). En la figura .. N es un nodo hoja. Nodo Interior: Es un nodo que no es raz ni hoja. En la figura .. D es un nodo interior. Orden: Es el nmero potencial de hijos que puede tener cada elemento de rbol. De este modo, diremos que un rbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres ser de orden tres, etc. Podramos decir que nuestro rbol de ejemplo es de orden tres. Grado: El nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el rbol del ejemplo, el grado es tres, ya que tanto A como D tienen tres hijos, y no existen elementos con ms de tres hijos. Nivel: Se define para cada elemento del rbol como la distancia a la raz, medida en nodos. El nivel de la raz es cero, el de sus hijos uno y asi sucesivamente. En el ejemplo, el nodo D tiene nivel 1, el nodo G tiene nivel 2 y el nodo N nivel 3. Rama: Es el camino desde el nodo raz a una hoja. En el ejemplo A-B-EK y A-B-F son ramas.

10

Altura: La altura de un rbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambien podemos hablar de altura de ramas, el mximo nmero de nodos que hay que recorrer para llegar de la raz a una de las hojas. El rbol de la Figura tiene altura 3, la rama B tiene altura 2, la rama G tiene altura 1 y la N cero. Peso: Es el nmero de nodos del rbol sin contar la raz. Camino: Es una consecuencia de nodos, en el que dos nodos consecutivos cualesquiera son padre e hijo. En el ejemplo A-D-H y A-CG-M son caminos. Longitud de camino: Es el nmero de arcos que deben ser recorridos para llegar desde la raz al nodo X. Por definicin la raz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y as sucesivamente. En nuestro rbol de ejemplo G tiene longitud de camino 3 y N tiene longitud de camino 4.

11

4 Conclusin
Brevemente concluyo con decir que el estudio de rboles ilustra las conexiones entre varios temas de la matemtica discreta y ofrece oportunidades para aprovechar la matemtica formal en la programacin prctica.

12

También podría gustarte