Napište implementaci binárního vyhledávacího stromu nad celými čísly pomocí dynamické datové struktury (každý uzel obsahuje hodnotu a odkaz na dva syny). Nad stromem definujte následující operace:
- přidání hodnoty do stromu -- přidá nový uzel se zadanou hodnotou do Binárního vyhledávacího stromu a vrátí ukazatel na jeho kořen. V případě, že byl strom prázdný (ukazatel na kořen == NULL) vrátí ukazatel na nově vytvořený uzel.
- vyhledávání ve stromu -- umožní v daném stromě nalázt danou hodnotu. V případě, že je hodnota nalezena, vrátí odkaz na uzel, ve kterém je uložena, v opačném případě vrátí hodnotu NULL.
- výpis stromu -- projde strom do hloubky a vypíše veškeré hodnoty uložené v uzlech stromu.
- uvolnění veškeré paměti použité pro strom.
- Napište hlavní tělo programu, které provede následující operace:
- naplní strom n náhodnými hotami, z intervalu 0-2*n, n zadává uživatel. Hodnoty postupně vypíše na standardní výstup.
- Vypíše hodnoty uložené v uzlech stromu.
- Pokusí se nalézt n náhodných hodnot z intervalu, který byl použit pro generování stromu. V případě, že je hodnota nalezena program vypíše "Hodnota hodnota nalezena." v opačném případě "Hodnota hodnota nenalezena.
- Uvolní paměť použitou stromem.