• 29 Mart 2024 16:20

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

bool OgrenciBul(const int ArananNumara);

BySait ORHAN

Kas 4, 2011

Metot parametra olarak bir öğrenci numarası alıp bunu listede arar, bulması durumunda true aksi durumlarda false değerini döndürür. Metodun numara ararken kullandığı mantık:

· Liste boşsa false döndür,

· Aranan numara liste başından küçükse listede yoktur ve false döndür,

· Aranan numara liste sonundan büyükse listede yoktur ve false döndür,

· Aksi durumlarda: Listenin başını gösteren bir işaretçi al; bakılan numara aranan numaradan farklı ise işaretçiyi bir sonraki elemana kaydır. Bu işlem işaretçi NULL oluncaya veya numara aranan numaraya eşit oluncaya dek tekrarla. Döngüden çıkışta işaretçi NULL gösteriyorsa liste tamamen taranmıştır ve bulunamamıştır, false döndür; numara aranan numaraya eşit ise bulunmuştur true döndür.

10000 Bilgisayar Sait Orhan
12546 Cevre Said Yagmahan
16453 Mekatronik Selim Ozedem

Yukarıda ki listeye göre OgrenciBul metodu çalıştırıldı.

[cpp]

bool Liste::OgrenciBul(const int ArananNumara)
{
//Liste Boş mu?
if(ListeSonu==NULL)
return false;
//Liste Numara Sıralı Olduğundan ArananNumara ListeBasindaki Numaradan Küçükse Listede Yoktur.
else if(ListeBasi->numara > ArananNumara)
return false;
//ArananNumara Listenin Sonundaki Numaradan Büyükse Listede Yoktur.
else if(ListeSonu->numara < ArananNumara)
return false;
Veriler *Bakilan = new Veriler();
Bakilan = ListeBasi;
while(Bakilan != NULL && Bakilan->numara != ArananNumara)
Bakilan = Bakilan->sonraki;
if(Bakilan == NULL)
return false;
else if(Bakilan->numara == ArananNumara)
return true;
}

[/cpp]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.