Listeye tek eleman eklemek için kullanılır. İlk adım olarak gelen öğrencinin numarasını analiz ederek kayıt yapabilen bir numara ise BolumBelirle(); metodu çağrılarak bölümü atanır. Eğer kayıt yapamayacak bir öğrenci ise “kayıt yapamaz” uyarısı vererek metodu sonlandırır. Ekleme işlemi daha önce açıklanan ekleme metoduyla aynı çalışır.
[cpp]
void Liste::ListeyeEkle(Veriler *Eklenecek)
{
if((Eklenecek->numara)/1000 >=10 && (Eklenecek->numara)/1000 < 20)
Eklenecek->BolumBelirle();
else
{
cout << Eklenecek->numara << " numarali ogrenci kayit yapamamaktadir.\n";
return;
}
//Eklenecek Eleman Listenin İlk Elamanı mı?
if(ListeSonu == NULL)
{
ListeBasi = Eklenecek;
ListeSonu = Eklenecek;
ListeSonu->onceki = NULL;
ListeSonu->sonraki = NULL;
cout << Eklenecek->numara << " numarali ogrenci eklendi.\n";
}
//Eklenecek Eleman Listenin Başına mı Eklenecek?
else if(ListeBasi->numara > Eklenecek->numara)
{
ListeBasi->onceki = Eklenecek;
Eklenecek->sonraki = ListeBasi;
ListeBasi = Eklenecek;
ListeBasi->onceki = NULL;
cout << Eklenecek->numara << " numarali ogrenci eklendi.\n";
}
//Eklenecek Eleman Listenin Sonuna mı Eklenecek?
else if(Eklenecek->numara > ListeSonu->numara)
{
ListeSonu->sonraki = Eklenecek;
Eklenecek->onceki = ListeSonu;
ListeSonu = Eklenecek;
ListeSonu->sonraki = NULL;
cout << Eklenecek->numara << " numarali ogrenci eklendi.\n";
}
//Eklenecek Eleman Araya mı Girecek?
else
{
Veriler *Bakilan;
Veriler *Bakilandan_Onceki;
Bakilan = ListeBasi;
while(Eklenecek->numara > Bakilan->numara)
{
Bakilandan_Onceki=Bakilan;
Bakilan = Bakilan->sonraki;
}
Eklenecek->sonraki = Bakilan;
Eklenecek->onceki = Bakilandan_Onceki;
Bakilandan_Onceki->sonraki = Eklenecek;
Bakilan->onceki = Eklenecek;
cout << Eklenecek->numara << " numarali ogrenci eklendi.\n";
}
}
[/cpp]