Binární vyhledávací stromy¶
Zadání¶
Prohlédněte si vzorovou strukturu binárního vyhledávacího stromu a implementujte následující funkce. Implementace nové funkčnosti by neměla rozbít už implementované funkce.
- find(self, value: int) -> Node:
- nalezení prvku s danou hodnotou (Pokud ve stromu není, tak None)
- můžete používat rekurzi
- insert(self, value:int):
- pokud ve stromě není přidejte nový vrchol s hodnotou value
- __len__(self) -> int:
- vratí aktuální počet prvků
- delete(self, value: int):
- smaže prvek s danou hodnotou (Pokud ve stromu není, příkaz ignorujte)
- Node.depth
- udržujte proměnnou depth pro každý vrchol ve stromu