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()));
}