Sunteți pe pagina 1din 4

RBOLES BINARIOS

DEFINICIN
Un rbol binario es: Un objeto vaco. , un nodo con dos rboles binarios llamados subrbol izquierdo y subrbol derecho

JERARQUA
Todo rbol manifiesta relaciones de dependencia o parentesco entre sus nodos. i T ! n" # n$ # n% , n& #n' , n( ) ) , n* # , n+ ) ) entonces ,az#T) ! n" -adre#n') ! n& .ijos#n&) ! /n', n(0 -rimos#n+) ! /n%, n&0

DEFINICIONES
,uta: 1s la secuencia de nodos n", ..., n2 de un rbol binario, de modo que ni es padre de ni3", i!"..24". -or ejemplo, ,uta#n", n') ! #n", n$, n&, n'). 5rco: 1s la trayectoria entre dos nodos consecutivos. 6on7itud de ruta #m8dulo de ruta): 1s la cantidad de arcos entre dos nodos. 9 ,uta#n", n')9 ! :#,uta#n", n')) " ! 5rcos#n", n') ! %. .oja: 1s un nodo que no tiene hijos. ;odo interior: 1s un nodo que no es hoja. 5ltura: 6a altura de un nodo ni es h#ni) ! ma<#9,uta#ni, n2)9) donde n2 es una hoja. i n" es la raz de un rbol T entonces h#n") es la altura de T. -rofundidad: i n" es la raz de un rbol T entonces la profundidad de un nodo n i es p#ni) ! 9 ,uta#n", ni)9. ;ivel: 1l nivel de un nodo ni es su -rofundidad. =rado: 1s el n>mero de descendientes directos de un nodo. 1l m<imo de los 7rados para todos los nodos de un rbol se conoce como 7rado del rbol. 6ue7o, un rbol binario es un rbol de 7rado $. ?rbol completo: 1l aquel que tiene todos sus niveles completos. @<imo de nodos de un rbol: 1l m<imo n>mero de nodos de un rbol se alcanza cuando est completo. 1l n>mero de nodos de un rbol completo de 7rado 7 y altura h es ;#g, h) !
g h +" " g "

?rbol binario g ! $. 6ue7o ;#$, h) !

" $ h+ "

RECORRIDO
1n un rbol, un recorrido es una secuencia n", ..., n2 tal que ni nj ij y, adems, para un nodo cualquiera el si7uiente nodo en la secuencia s8lo puede ser su padre, un hijo 8 su hermano. -or ejemplo, si T ! n" #n$ #n% , n& ) , n' ) entonces para el nodo n$ el si7uiente nodo en la secuencia s8lo puede ser n", n% 8 n&, o bien, n'. 5l recorrer un rbol binario, en cada nodo puede ocurrir uno de los tres si7uientes eventos: 1jecutar al7una acci8n sobre la raz #R) ,ecorrer el subrbol izquierdo #I) ,ecorrer el subrbol derecho #D) 6ue7o, e<isten seis posibles formas distintas de ordenar tales eventos: RID, RDI, IRD, DRI, IDR, DIR in embar7o, por convenci8n, siempre se recorre el subrbol izquierdo antes que el derecho, raz8n por la cual e<isten tan s8lo tres recorridos normalizados: -redorden #RID) 1norden #IRD) -ostorden #IDR) Aormalmente, para un rbol binario T: i) i T ! n entonces -reorden#T) ! n 1norden#T) ! n -ostorden#T ! n ii) i T ! n # Ti , Td )entonces -reorden#T) ! n, -reorden#Ti), -reorden#Td) 1norden#T) ! 1norden#Ti), n, 1norden#Td) -ostorden#T) ! -ostorden#Ti), -ostorden#Td), n ,epresentaci8n de un rbol binario en len7uaje C: typedef struct nodo / int datoB struct nodo CizqB struct nodo CderB 0nodoB typedef nodo CabB Dmplementar, en len7uaje C, operadores para imprimir el contenido de un rbol binario t se7>n los tres recorridos normalizados. void imprimerid#ab t) / if #t E! ;U66) / printf #FGdF, t4Hdato)B imprimerid#t4Hizq)B imprimerid#t4Hder)B 0 0

void imprimeird#ab t) / if #t E! ;U66) / imprimeird#t4Hizq)B printf #FGdF, t4Hdato)B imprimeird#t4Hder)B 0 0 void imprimeidr#ab t) / if #t E! ;U66) / imprimeidr#t4Hizq)B imprimeidr#t4Hder)B printf #FGdF, t4Hdato)B 0 0

RBOLES DE EX RESIONES
Un rbol binario de e<presi8n #5I1) es un rbol binario utilizado para representar una e<presi8n aritmJtica de la si7uiente manera: Kada hoja contiene un operando. Kada nodo interior contiene un operador aritmJtico. Un 5I1 tiene informaci8n implcita sobre prioridad de operadores y asociatividad. ea T un 5I1 compuesto de un nodo ; y subrboles izquierdo T i y derecho Td. 6a evaluaci8n de T se efect>a de acuerdo al si7uiente al7oritmo: i Ti y Td son rboles vacos, entonces el valor de T es el valor contenido en ;. i Ti y Td son rboles no vacos, entonces el valor de T es el valor de T i operado con el valor de Td se7>n el operador contenido en ;.

,epresentaci8n de un 5I1 en len7uaje C: typedef struct nodo / int hojaB union / float valorB char si7noB 0varB struct nodo CizqB struct nodo CderB 0nodoB typedef nodo Carbe!B

Kon respecto a un rbol binario de e<presi8n t, implementar en len7uaje C operadores para evaluar la e<presi8n que t representa e imprimir el contenido de t. float e"a#$a#arbe! t) / if #t E! ;U66) if #t4Hhoja) return t4Hvar.valorB else sLitch #t4Hvar.si7no) / case M3M: return e"a#$a#t4Hizq) 3 e"a#$a#t4Hder)B case MM: return e"a#$a#t4Hizq) e"a#$a#t4Hder)B case MM: return e"a#$a#t4Hizq) e"a#$a#t4Hder)B case MNM: return e"a#$a#t4Hizq) N e"a#$a#t4Hder)B default: printf#O1rrorP)B 0 0 void imprime#arbe! t) / if #t E! ;U66) if #t4Hhoja) printf#t4Hvar.valor)B else / printf #F#F)B imprime#t4Hizq)B printf #FGcF, t4Hvar.si7no)B imprime#t4Hder)B printf #F)F)B 0 0

S-ar putea să vă placă și