Yığına eleman eklemek için yeni alan tahsis edilir. Yeni elemanın numarası alındıktan sonra numara analiz edilerek kayıt olabilirliği sınanır daha sonra numara YiginiTara() metoduna gönderilerek daha önce kayıt yapmamış olduğu doğrulanır. Numara bu testlerden geçtikten sonra yeni elemanın sonrakine yığını tepesi değeri atanır ve yeni eleman da yığın tepesi olarak değiştirilir.
[cpp]
void Yigin::TepeyeElemanEkle(void)
{
int secim=1;
while(secim==1)
{
YiginVerileri *Eklenecek = new YiginVerileri();
if(Eklenecek)
{
cout << "Yeni Ogrencinin Numarasini Giriniz: ";
cin >> Eklenecek->numara;
if(YiginiTara(Eklenecek->numara))
{
cout << Eklenecek->numara << " ile daha once kayit alinmistir. Numarayi Kontrol ediniz!\n";
continue;
}
Eklenecek->BolumBelirle();
for(;Eklenecek->numara/1000 >= 20 || Eklenecek->numara/1000 < 10;)
{
cout << "Hatali Numara Girisi! Numarayi Tekrar Giriniz.\n";
cout << "Yeni Ogrencinin Numarasini Giriniz: ";
cin >> Eklenecek->numara;
if(YiginiTara(Eklenecek->numara))
{
cout << Eklenecek->numara << " ile daha once kayit alinmistir. Numarayi Kontrol ediniz!\n";
Eklenecek->numara = 0;
continue;
}
}
Eklenecek->BolumBelirle();
cout << "Yeni Ogrencinin Adi ve Soyadini Giriniz: ";
cin >> Eklenecek->isim; cin >> Eklenecek->soyisim;
}
//Eklenecek Eleman Yığınınn ilk elemanı ise
if(YiginTepesi==NULL)
{
YiginTepesi = Eklenecek;
YiginTepesi->sonraki = NULL;
}
else
{
Eklenecek->sonraki = YiginTepesi;
YiginTepesi = Eklenecek;
}
cout << "\nYeni Ogrenci Girisi Basarili. Yeni Giris Icin 1 e basiniz.\n"
"Cikmak Icin 1 Disinda Rakam Giriniz.Seciminiz: ";
cin>>secim;
cout<<endl;
}
}
[/cpp]