|
Implementácie |
Vyhµadávanie zadanej hodnoty v strome
|
|
|
//vyhladavanie zadanej hodnoty "hladany" v binarnom strome urcenom uzlom "uzol" pomocou cyklu while
//funkcia vracia ukazovatel na najdeny uzol (v pripade neuspechu vyhladavania vracia 0)
CUzol* najdi_cykl_uzol(CUzol* uzol, int hladany){
while(uzol) {
if (uzol->hodnota() > hladany) uzol=uzol->lavy();
else if (uzol->hodnota() < hladany) uzol=uzol->pravy();
else return uzol;
}
return 0;
} |
|
//vyhladavanie zadanej hodnoty "hladany" v binarnom strome urcenom uzlom "uzol" pomocou cyklu while
//funkcia vracia ukazovatel na najdeny uzol (v pripade neuspechu vyhladavania vracia 0)
CUzol* najdi_cykl2_uzol(CUzol* uzol, int hladany){
while(uzol && uzol->hodnota()!=hladany) {
if (uzol->hodnota() > hladany) uzol=uzol->lavy();
else uzol=uzol->pravy();
}
return uzol;
} |
|
//vyhladavanie zadanej hodnoty "hladany" v binarnom strome urcenom uzlom "uzol"
//funkcia vracia logicku premennu (ak sa zadana hodnota v strome nachadza true, inak false)
bool najdi_bool(CUzol* uzol, int hladany){
if (!uzol) return false;
else if (uzol->hodnota()==hladany) return true;
else if (uzol->hodnota() > hladany) return najdi_bool(uzol->lavy(), hladany);
else return najdi_bool(uzol->pravy(), hladany);
} |
|
//vyhladavanie zadanej hodnoty "hladany" v binarnom strome urcenom uzlom "uzol" pomocou rekurziou
//funkcia vracia ukazovatel na najdeny uzol (v pripade neuspechu vyhladavania vracia 0)
CUzol* najdi_rek_uzol(CUzol* uzol, int hladany){
if (!uzol) return 0;
else if (uzol->hodnota() > hladany) return (najdi_rek_uzol(uzol->lavy(), hladany));
else if (uzol->hodnota() < hladany) return (najdi_rek_uzol(uzol->pravy(), hladany));
else return uzol;
} |
|
//vyhladavanie zadanej hodnoty "hladany" v binarnom strome urcenom uzlom "uzol" pomocou rekurzie
//funkcia vracia ukazovatel na najdeny uzol (v pripade neuspechu vyhladavania vracia 0)
CUzol* najdi_rek2_uzol(CUzol* uzol, int hladany){
if (!uzol || uzol->hodnota()==hladany) return uzol;
else if (uzol->hodnota() > hladany) return (najdi_rek2_uzol(uzol->lavy(), hladany));
else return (najdi_rek2_uzol(uzol->pravy(), hladany));
} |
|