Anda di halaman 1dari 15

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN UNIVERSITARIA UNIVERSIDAD NACIONAL EXPERIMENTAL RMULO GALLEGOS

REA DE INGENIERA EN SISTEMAS PROGRAMA DE INGENIERA EN INFORMTICA

Profesor: Dionis Marcano Seccin: 4

Bachilleres: Leidis Carreo C.I: 18.044.120 Dalexis Gmez C.I: 21.336.907 Jos Seijas C.I: 22.951.110 Michael De Abreu C.I: 19.46.8645

SAN JUAN DE LOS MORROS, 2013

INDICE.

ii

INTRODUCCIN

La estructura de datos no

lineales

llamada

rbol.

Se

usa

principalmente para representar datos con una relacin jerrquica entre sus elementos, como por ejemplo registros, rboles genealgicos, y tablas de contenidos. Vamos a profundizar en un tipo especial de rbol llamado rbol binario, la cual puede ser implementada fcilmente en la computadora; aunque en un rbol puede parecer muy restrictivo. Tambin se va a ampliar sobre rboles ms generales y puntos con relacin a los rboles binarios. rboles generales permanecen inalterados sin ms que hacer las particularizaciones correspondientes. En los rboles binarios hay que tener en cuenta el orden izquierda-derecha de los hijos.

Los rboles de clasificacin (tambin llamados de decisin o de identificacin) constituyen una aproximacin radicalmente distinta a todas las estudiadas hasta el momento. Es uno de los mtodos de aprendizaje inductivo supervisado no paramtrico ms utilizado. Como forma de representacin del conocimiento, los rboles de clasificacin destacan por su sencillez. A pesar de que carecen de la expresividad de las redes semnticas o de la lgica de primer orden, su dominio de aplicacin no est restringido a un mbito concreto sino que pueden utilizarse en diversas reas: diagnstico mdico, juegos, prediccin meteorolgica, control de calidad, etc.

iii

ARBOLES Definicin: 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 ms nodos hijos conectados a l. Se dice que un nodo a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, tambin decimos que b es hijo de a). Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no tiene hijos se conoce como hoja. Los dems nodos (tienen padre y uno o varios hijos) se les conoce como rama.

los rboles

ordenados

de grado dos

se

les

conocen

como rboles binarios ya que cada nodo del rbol no tendr ms de dos descendientes directos. Las aplicaciones de los rboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos.

Representacin En Memoria Hay dos formas tradicionales de representar un rbol binario en memoria

Por medio de datos tipo punteros tambin conocidos como variables dinmicas o listas.

Por medio de arreglo

Los nodos del rbol binario sern representados como registro que contendrn como mnimo tres campos. En un campo se almacenar la informacin del nodo. Los dos restantes se utilizarn para apuntar al subarbol izquierdo y derecho del subarbol en cuestin. Cada nodo se representa grficamente de la siguiente manera:

El algoritmo de creacin de un rbol binario es el siguiente: Procedimiento crear (q:nodo) Inicio mensaje("Rama izquierda?") lee(respuesta) si respuesta = "si" entonces new(p) q(li) <-- nil crear(p) en caso contrario q(li) <-- nil mensaje("Rama derecha?") lee(respuesta) si respuesta="si" entonces new(p) q(ld)<--p crear(p) en caso contrario q(ld) <--nil fin Clasificacin de rboles Binarios Existen cuatro tipos de rbol binario:.

A. B. Distinto. A. B. Similares. A. B. Equivalentes. A. B. Completos.

A continuacin se har una breve descripcin de los diferentes tipos de rbol binario as como un ejemplo de cada uno de ellos. A. B. DISTINTO Se dice que dos rboles binarios son distintos cuando sus estructuras son diferentes. Ejemplo:

A. B. SIMILARES Dos rboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos es diferente. Ejemplo:

A. B. EQUIVALENTES Son aquellos rboles que son similares y que adems los nodos contienen la misma informacin. Ejemplo:

A. B. COMPLETOS Son aquellos rboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subarbol izquierdo y el subrbol derecho Recorrido De Un rbol Binario Hay tres maneras de recorrer un rbol: en inorden, preorden y postorden. Cada una de ellas tiene una secuencia distinta para analizar el rbol como se puede ver a continuacin:

Inorden Recorrer el subarbol izquierdo en inorden. Examinar la raz. Recorrer el subarbol derecho en inorden.

Preorden Examinar la raz. Recorrer el subarbol izquierdo en preorden. recorrer el subarbol derecho en preorden. Postorden Recorrer el subarbol izquierdo en postorden. Recorrer el subarbol derecho en postorden. Examinar la raz.

Ejemplo:

Inorden: GDBHEIACJKF Preorden: ABDGEHICFJK Postorden: GDHIEBKJFCA Arboles Enhebrados Existe un tipo especial de rbol binario llamado enhebrado, el cual contiene hebras que pueden estar a la derecha o a la izquierda. El siguiente ejemplo es un rbol binario enhebrado a la derecha.

Arbol Enhebrado A La Derecha. Este tipo de rbol tiene un apuntador a la derecha que apunta a un nodo antecesor.

Arbol Enhebrado A La Izquierda. Estos arboles tienen un apuntador a la izquierda que apunta al nodo antecesor en orden Control De Acceso A Los Elementos De Un Arreglo En C++, el acceso a los elementos de un arreglo tiene que ser controlado por el programador, ya que el lenguaje no restringe la posibilidad de accesar a posiciones de memoria que estn ms abajo de la ltima posicin reservada para el arreglo. Lo mismo sucede cuando se manejan cadenas, donde el programador tiene la responsabilidad de controlar el acceso a los caracteres de la cadena, tomando como lmite el terminador nulo. En el listado 5.6 se presenta un ejemplo de acceso a los 5 bytes colocados abajo del terminador nulo de una cadena dada por el usuario.

#include // Para gets() y puts() #include // Para clrscr() y gotoxy() #include // Para strlen() void main() { char nombre[31]; clrscr(); gotoxy(10,1); puts(" Cul es tu nombre ? "); gotoxy(35,1); gets(nombre); clrscr(); gotoxy (10,1);

puts("ELEMENTO CARACTER DIRECCION"); for( int x=0 ; (x < x,nombre[x],nombre[x],&nombre[x]); u?, c="%4d" printf(?nombre[%2d] gotoxy(10,x+2); x++) x Nomenclatura sobre rboles - Raz: es aquel elemento que no tiene antecesor - Rama: arista entre dos nodos. - Antecesor: un nodo X es antecesor de un nodo Y si por alguna de las ramas de X se puede llegar a Y. - Sucesor: un nodo X es sucesor de un nodo Y si por alguna de las ramas de Y se puede llegar a X. - Grado de un nodo: el nmero de descendientes directos que tiene. - Hoja: nodo que no tiene descendientes: - Nodo interno: aquel que tiene al menos un descendiente. - Altura: el nivel ms alto del rbol. - Anchura: es el mayor valor del nmero de nodos que hay en un nivel. Algoritmos: Preorden: PREORDEN(NODO) {El algoritmo realiza el recorrido preorden en un rbol binario. NODO es un dato de tipo PUNTERO} {INFO, IZQ y DER son campos del registro NODO. INFO es una o ms variables de informacin del nodo, IZQ y DER son variables de tipo puntero} Si NODO = NILL entonces Visitar el NODO {Escribir la informacin NODO^.INFO} Regresa a PREORDEN con PREORDEN(NODO^.IZQ) {Llamada recursiva con la rama izquierda} Regresa a PREORDEN con PREORDEN(NODO^.DER) {Llamada recursiva con la rama derecha} Fin-si

Fin-algoritmo

Inorden: INORDEN(NODO) {El algoritmo realiza el recorrido inorden en un rbol binario. NODO es un dato de tipo PUNTERO} {INFO, IZQ y DER son campos del registro NODO. INFO es una o ms variables de informacin del nodo, IZQ y DER son variables de tipo puntero} Si NODO = NILL entonces INORDEN(NODO^.IZQ) {Llamada recursiva con la rama izquierda} Visitar el NODO {Escribir la informacin NODO^.INFO} INORDEN(NODO^.DER) {Llamada recursiva con la rama derecha} Fin-si Fin-algoritmo Postorden: POSTORDEN(NODO) {El algoritmo realiza el recorrido postorden en un rbol binario. NODO es un dato de tipo PUNTERO} {INFO, IZQ y DER son campos del registro NODO. INFO es una o ms variables de informacin del nodo, IZQ y DER son variables de tipo puntero} Si NODO = NILL entonces POSTORDEN(NODO^.IZQ) {Llamada recursiva con la rama izquierda} POSTORDEN(NODO^.DER) {Llamada recursiva con la rama derecha} Visitar el NODO {Escribir la informacin NODO^.INFO} Fin-si Fin-algoritmo.

10

11

rbol de Bsqueda Binaria

31 22 27 19 23 18 28 29 19 24

Preorden: 31, 22, 18, 23, 27, 19, 28, 24, 29, 16 Inorden: 18, 27, 23, 31, 28,19, 22, 29, 24, 16 Postorden: 18, 23, 27, 28, 19, 29, 16, 24, 22, 31

12

rbol de expresin algebraica

^ * /
B A C D E

Preorden: +, *, A, B, ^, /, C, D, E Inorden: A, *, B, +, C, /, D, ^, E Postorden: A, B, *, C, D, /, E, ^, +

13

CONCLUSIN

Es una forma de representar el conocimiento obtenido en el proceso de aprendizaje inductivo. Puede verse como la estructura

resultante de la particin recursiva del espacio de representacin a partir del conjunto (numeroso) de prototipos. Esta particin recursiva se traduce en una organizacin jerrquica del espacio de representacin que puede modelarse mediante una estructura de tipo rbol. Cada nodo

interior contiene una pregunta sobre un atributo concreto (con un hijo por cada posible respuesta) y cada nodo hoja se refiere a una decisin (clasificacin).

La clasificacin de patrones se realiza en base a una serie de preguntas sobre los valores y sus atributos, empezando por el nodo raz y siguiendo el camino determinado por las respuestas a las preguntas de los nodos internos, hasta llegar a un nodo hoja. La etiqueta asignada a esta hoja es la que se asignar al patrn a clasificar.

14

BIBLIOGRAFA.

[LOP99] Lpez Bruno et. al. Modelo de asignacin de carga acadmica usando algoritmos genticos. 1999 [RUI96] Ruiz, F. y otros: Nuevas herramientas tecnolgicas para la realizacin de cursos por computador. Revista de Enseanza y

Tecnologa, No. 5, 1996, pp. 21 - 31. [WIL83] Wilensky, R. (1983) Planning and Understanding. A computational approach to human reasoning. Addison Wesley.

15

Anda mungkin juga menyukai