Binárny vyhľadávací strom

Riešenia


Úloha 20

V prvej vrstve môže by najviac 1 vrchol, v druhej vrstve najviac 2 vrcholy, v tretej vrstve najviac 4 vrcholy atď. Všeobecne na i-tej vrstve môže by najviac 2i-1 vrcholov.

Ak h = 0, tak obsahuje 1 prvok. Ak h = 1 , tak počet vrcholov je súčtom vrcholov z prvej a druhej vrstvy t.j. 1 + 21 = 3 atď. Všeobecne pre strom výšky h určíme maximálny počet vrcholov ako súčet počtov vrcholov vo vrstvách 1 až h + 1:

N = 2h + 1 - 1


Úloha 21

Ak sú vstupné hodnoty, z ktorých vytvárame binárny vyhľadávací strom už usporiadané (napr. vzostupne), tak bude zrejme každý ďalší prvok pripojený ako pravý syn predchádzajúceho a výsledný strom tak bude úplne degenerovaný - pripomína skôr lineárny zoznam!

Ide o najhorší prípad.

   Vo všeobecnosti dopredu vôbec nevieme, aký bude ma binárny vyhľadávací strom tvar, ako sa bude "rozrasta". Môže sa sta, že sa vytvorí degenerovaný strom (najhorší prípad). Vyhľadávanie v takomto strome vyžaduje rádovo O(n) porovnaní, čo je pre prax nepoužiteľné (pomalé !).

Ideálne by bolo, keby bol binárny vyhľadávací strom dokonale vyvážený. Vtedy sa dosahuje pri vyhľadávaní za ideálnych podmienok rýchlos rádovo O(log2n). Ideálnymi podmienkami rozumieme, že vyhľadávací strom zostane stále dokonale vyvážený. To si však vyžaduje používa dokonalejšie funkcie na vkladanie  a rušenie vrcholov.

Pri vytváraní vyhľadávacieho stromu sa môžeme spolieha na náhodu a predpoklada, že strom nebude priveľmi nevyvážený. Dá sa ukáza, že priemerná výška binárneho vyhľadávacieho stromu s n vrcholmi je približne 1,4·log2n, čo sa príliš od ideálneho prípadu nelíši.