int BSTHeight (tBSTNodePtr NodePtr, bool IsRoot) { /* Pokud je strom prazdny */ if ( NodePtr == NULL ) { return -1 ; } /* Pokud strom prazdny neni */ else { /* Rekurze pro levy a pravy podstrom */ int l_height = BSTHeight ( NodePtr -> LPtr , TRUE ) ; int r_height = BSTHeight ( NodePtr -> RPtr , TRUE ) ; /* Vybrani nejdelsi cesty */ if ( l_height > r_height ) { return ( l_height + 1 ) ; } else { return ( r_height + 1 ) ; } } }
int test_BSTHeight(tBSTNodePtr TempTree) { solved=TRUE; int vyska = FALSE; vyska = BSTHeight(TempTree, TRUE); if (!solved) { printf("Operace BSTHeight() nebyla implementovana \n"); return(FALSE); } else { if (vyska == -1) { printf("Strom je prazdny. Vyska neni definovana!\n"); } else { printf("Vyska stromu je %d\n", vyska); } printf("=================================================\n"); return(TRUE); } }