Hoy potřeboval bych pomoc nevím si vůbec rady s tímto příkladem:
Máte dáno přirozené číslo n. Vygenerujte všech n! permutací čísel 0; 1; 2; : : : ; n-1 a pro každou takto vygenerovanou permutaci
vytvořte binární vyhledávací strom.
A u tohoto stromu změřte jeho výšku.
Celkem dostanete n! výšek (nemusí být pochopitelně všechny rùzné). Změřené
výsledky zpracujte do tabulky.
Poznámky
- Pro systematické generování všech permutací lze vymyslet jednoduchý rekurzivní algoritmus pracující s polem.
- Permutace není nutné nejprve vygenerovat a pak z nich vytvářet binárnístromy. Proces vytváření stromu mùžete spustit ihned, jakmile budete mít k dispozici další permutaci. Vytvoříte strom, změříte jeho výšku, kterou
si zaznamenáte. Poté mùžete strom smazat a přejít k vytváření další permutace.
- Strom z permutace vytvoříme tak, že prvky z permutace postupně vložíte do stromu ve stejném pořadí v jakém jsou zapsány v permutaci. Například, je-li permutace (1342) vloříte do stromu nejprve prvek 1, pak 3, pak 4 a nakonec 2.
- Není potřeba implementovat například mazání prvku ze stromu. Naopak ale musíte vymyslet jak spočítat výšku stromu.
- Pro testování použijte základní nevyváženou variantu binárního stromu.
- Program otestujte aspoň pro n = 10, n! = 3628800.
udělal nebo pomohl by mi někdo? diky