|
Implementácie |
Vyhµadávanie extrému v strome
|
|
|
//vyhladavanie minimalnej hodnoty v strome urcenom uzlom "uzol" pomocou cyklu while
//funkcia vracia ukazovatel na uzol s minimalnou hodnotou
CUzol* najdi_cykl_min_uzol(CUzol* uzol){
if (uzol)
while (uzol->lavy()) uzol=uzol->lavy();
return uzol;
} |
|
//vyhladavanie minimalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie
//funkcia vracia ukazovatel na uzol s minimalnou hodnotou
CUzol* najdi_rek_min_uzol(CUzol* uzol){
if (!uzol) return 0;
else if (!uzol->lavy()) return uzol;
else return (najdi_rek_min_uzol(uzol->lavy()));
} |
|
//vyhladavanie minimalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie a
//pomocou funkcie najdi_rek2_min_uzol_pomoc(CUzol* uzol), ktora nerobi zaciatocnu podmienku
//funkcia vracia ukazovatel na uzol s minimalnou hodnotou
CUzol* najdi_rek2_min_uzol(CUzol* uzol){
if (!uzol) return 0;
else if (!uzol->lavy()) return uzol;
else return (najdi_rek2_min_uzol_pomoc(uzol->lavy()));
}
//vyhladavanie minimalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie
//bez zaciatocnej podmienky
//funkcia je vyuzivana funkciou najdi_rek2_min_uzol(CUzol* uzol)
//funkcia vracia ukazovatel na uzol s minimalnou hodnotou
CUzol* najdi_rek2_min_uzol_pomoc(CUzol* uzol){
if (!uzol->lavy()) return uzol;
else return (najdi_rek2_min_uzol_pomoc(uzol->lavy()));
} |
|
//vyhladavanie maximalnej hodnoty v strome urcenom uzlom "uzol" pomocou cyklu while
//funkcia vracia ukazovatel na uzol s maximalnou hodnotou
CUzol* najdi_cykl_max_uzol(CUzol* uzol){
if (uzol)
while (uzol->pravy()) uzol=uzol->pravy();
return uzol;
} |
|
//vyhladavanie maximalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie
//funkcia vracia ukazovatel na uzol s maximalnou hodnotou
CUzol* najdi_rek_max_uzol(CUzol* uzol){
if (!uzol) return 0;
else if (!uzol->pravy()) return uzol;
else return (najdi_rek_min_uzol(uzol->pravy()));
} |
|
//vyhladavanie maximalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie a
//pomocou funkcie najdi_rek2_max_uzol_pomoc(CUzol* uzol), ktora nerobi zaciatocnu podmienku
//funkcia vracia ukazovatel na uzol s maximalnou hodnotou
CUzol* najdi_rek2_max_uzol(CUzol* uzol){
if (!uzol) return 0;
else if (!uzol->pravy()) return uzol;
else return (najdi_rek2_max_uzol_pomoc(uzol->pravy()));
}
//vyhladavanie maximalnej hodnoty v strome urcenom uzlom "uzol" pomocou rekurzie
//bez zaciatocnej podmienky
//funkcia je vyuzivana funkciou najdi_rek2_max_uzol(CUzol* uzol)
//funkcia vracia ukazovatel na uzol s maximalnou hodnotou
CUzol* najdi_rek2_max_uzol_pomoc(CUzol* uzol){
if (!uzol->pravy()) return uzol;
else return (najdi_rek2_max_uzol_pomoc(uzol->pravy()));
} |
|