Implementácie

Vyhµadávanie v jednosmerne zre»azenom zozname

 
 
//sekvencne vyhladavanie zadanej hodnoty "hladany" v JZ zozname od zaznamu "aktualny"
//zoznam musi byt ukonceny nulovym ukazovatelom
//funkcia vracia ukazovatel na najdeny zaznam (v pripade neuspechu vyhladavania vracia 0)
CZaznam_JZ* JZnajdi_sekv1_zaznam(int hladany, CZaznam_JZ* aktualny){
	while (aktualny) {
		if (aktualny->hodnota()==hladany) return aktualny;
		else aktualny=aktualny->dalsi();
	}
	return 0;
}
 
//sekvencne vyhladavanie zadanej hodnoty "hladany" v JZ zozname od zaznamu "aktualny"
//zoznam musi byt ukonceny nulovym ukazovatelom 
//funkcia vracia logicku premennu (ak sa zadany prvok v poli nachadza true, inak false)
bool JZnajdi_sekv1_bool(int hladany, CZaznam_JZ* aktualny){
	while (aktualny) {
		if (aktualny->hodnota()==hladany) return true;
		else aktualny=aktualny->dalsi();
	}
	return false;
}
 
//sekvencne vyhladavanie zadanej hodnoty "hladany" v JZ zozname od zaznamu "aktualny"
//zoznam musi byt zretazeny dokola 
//funkcia vracia ukazovatel na najdeny zaznam (v pripade neuspechu vyhladavania vracia 0)
CZaznam_JZ* JZnajdi_sekv2_zaznam(int hladany, CZaznam_JZ* aktualny){
	if (!aktualny) return 0;
	CZaznam_JZ* prvy=aktualny;
	do {
		if (aktualny->hodnota()==hladany) return aktualny;
		else aktualny=aktualny->dalsi(); 
	} while (aktualny!=prvy);
	return 0;
}
 
//sekvencne vyhladavanie zadanej hodnoty "hladany" v JZ zozname od zaznamu "aktualny"
//zoznam musi byt zretazeny dokola  
//funkcia vracia logicku premennu (ak sa zadany prvok v poli nachadza true, inak false) 
bool JZnajdi_sekv2_bool(int hladany, CZaznam_JZ* aktualny){
	if (!aktualny) return 0;
	CZaznam_JZ* prvy=aktualny;
	do {
		if (aktualny->hodnota()==hladany) return true;
		else aktualny=aktualny->dalsi();
	} while (aktualny!=prvy);
	return false;
}