Hi ha diverses maneres de balancejar un arbre binari amb elements per aconseguir que tingui alçada . Una de popular són els arbres Red-Black, on cada node està pintat de vermell o de negre. Les propietats que han de complir els arbres Red-Black són:
Cada camí des de l’arrel fins a una fulla buida té el mateix nombre de nodes negres.
Cap camí des de l’arrel fins a una fulla buida té dos o més nodes vermells seguits.
Per exemple, aquests són els 16 arbres Red-Black d’alçada 3 amb l’arrell vermella:
Per convenció, les fulles buides no es mostren. Per exemple, el fill esquerre del node negre de la dreta del primer arbre és una fulla buida, la qual és l’única que s’ha dibuixat.
Els arbres Red-Black es poden ordenar de diverses maneres. Aquesta n’és una: L’arbre buit és el primer arbre. Donats dos arbres no buits, si tenen les arrels de colors diferents, va abans el que té l’arrel vermella. En cas d’igualtat, es desempata amb el subarbre esquerre. En cas d’un altre empat, es desempata amb el subarbre dret. Els 16 arbres anteriors estan ordenats.
Donats dos nombres i , podeu trobar l’-èsim arbre Red-Black d’alçada ?
L’entrada conté diversos casos, cadascun amb l’alçada i l’índex . Podeu suposar , i que l’índex es troba entre 1 i el nombre d’arbres Red-Black d’alçada . (Per a , n’hi ha 3822531721037.)
Per a cada cas, escriviu una línia amb el recorregut en preordre de
l’arbre resultat: feu servir punts per marcar els arbres buits,
‘R’ per als nodes vermells, i ‘B’ per als
nodes negres.
Cas A: Casos amb , com l’exemple d’entrada 1.
Cas B: Casos de tot tipus.