Capı́tulo XII Árvores Binárias Perfeitamente Equilibradas e Equilibradas Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 1 Árvore Binária Perfeitamente Equilibrada Todo o nó X verifica a propriedade: NúmeroDeNós( sub-árvore esquerda de X ) − ≤ 1. NúmeroDeNós( sub-árvore direita de X ) '$ '$ x a &% @ @ @ @ '$'$ y z &%&% &% H HH H HH H H '$ '$ c b &% &% @ @ @ @ @ @ @ @ '$'$ '$ d e f &%&%&% Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 2 Altura Máxima de uma Árvore Binária Perfeitamente Equilibrada com n Nós H(0) = 0 = log 1 H(1) = 1 = log 2 H(2) = 2 = dlog 3e H(3) = 2 = log 4 H(4) = 3 = dlog 5e H(n) = dlog(n + 1)e Base da Indução (n = 0) H(0) = 0 = dlog 1e Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 3 Caso Geral (1) H(n) = dlog(n + 1)e Se n é ı́mpar (n ≥ 1) '$ 1 &% @ @ @ @ n−1 2 n−1 2 H(n) = 1 + H( n−1 2 ) H.I. = 1 + dlog( n−1 2 + 1)e = ··· = dlog(n + 1)e Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 4 Caso Geral (2) H(n) = dlog(n + 1)e Se n é par (n ≥ 2) '$ 1 &% @ @ @ @ n 2 n −1 2 H(n) = 1 + H( n 2) H.I. = 1 + dlog( n 2 + 1)e = ··· = dlog(n + 1)e Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 5 Árvore Binária Equilibrada Todo o nó X verifica a propriedade: Altura( sub-árvore esquerda de X ) − ≤ 1. Altura( sub-árvore direita de X ) '$ '$ x a &% @ @ @ @ '$'$ y z &%&% &% HH H HH H HH '$ '$ c b &% &% @ @ @ @ '$'$ e f &%&% Proposição: Uma árvore binária perfeitamente equilibrada é uma árvore binária equilibrada. Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 6 Número Mı́nimo de Nós de uma Árvore Binária Equilibrada com altura h (1) '$ 1 &% @ @ @ @ h−1 h−2 N (0) = 0 N (1) = 1 N (h) = 1 + N (h − 1) + N (h − 2) (para h ≥ 2) Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 7 Número Mı́nimo de Nós de uma Árvore Binária Equilibrada com altura h (2) Altura h Número Mı́nimo de Nós Fibonacci(h) 0 0 0 1 1 1 2 2 1 3 4 2 4 7 3 5 12 5 6 20 8 Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 8 N (h) = Fibonacci(h + 2) − 1 Base da Indução (h = 0, 1) N (0) = 0 = Fibonacci(2) − 1 N (1) = 1 = Fibonacci(3) − 1 Caso Geral (h ≥ 2) N (h) = H.I. 1 + N (h − 1) + N (h − 2) = 1 + Fibonacci(h + 1) − 1 + Fibonacci(h) − 1 = Fibonacci(h + 2) − 1 Margarida Mamede, DI – FCT/UNL AED, 2009/10, Capı́tulo XII 9 Altura Máxima de uma Árvore Binária Equilibrada com n nós Dado n (o número total de nós), existe h tal que: Fibonacci(h + 2) − 1} {z ≤ | h é a maior altura com n nós n < |Fibonacci(h + 3) − 1} {z número mı́nimo de nós para altura h + 1 Fibonacci(h + 2) − 1 ≤ n √1 φh+2 ≤ n 5 log n + log h ≤ log φ Margarida Mamede, DI – FCT/UNL √ 5 − 2 ≈ 1.44 log n − 0.33 AED, 2009/10, Capı́tulo XII 10