void Agac::agackur(char *talebeno,char *isim,char *soyisim){
ogrenciPtr tara,yeni;
tara = kok;
int karsilas;
bool eklenme_durumu = false;
yeni = new Ogrenci;
strcpy(yeni->ad,isim);
strcpy(yeni->soyad,soyisim);
strcpy(yeni->ogrno,talebeno);
yeni->sagPtr = NULL;
yeni->solPtr = NULL;
if(kok==NULL){
kok=yeni;
//ilk düğüm burada eklenir
dugumsayisi++;
return;
}
while((tara!=NULL) && (!eklenme_durumu)){
karsilas = strcmp(yeni->ogrno,tara->ogrno);
if(karsilas<0){
if(tara->solPtr != NULL)
tara=tara->solPtr;
else{
tara->solPtr = yeni;
eklenme_durumu = true;
}
}else if(karsilas>0){
if(tara->sagPtr != NULL)
tara = tara->sagPtr;
else{
tara->sagPtr = yeni;
eklenme_durumu = true;
}
}else
;
}
if(eklenme_durumu)
dugumsayisi++;
//Diğer düğümler yukarıdaki satırlarda eklenir
}
/**********************************************************************************************************************************
* Fonksiyonun adı:dosyadanoku *
* Fonksiyonun amacı:girdi dosyasindan ogrenci bilgilerini okuyarak agackur fonksiyonuna gönderirir *
* Giriş Parametresi: --- *
* Çıkış parametresi: --- *
* Veri yapıları:struct Kayit *
***********************************************************************************************************************************/
void Agac::dosyadanoku(){
struct Kayit{
char ad[Ad_soyad_uzunluk];
char soyad[Ad_soyad_uzunluk];
char ogrno[Ogrenci_no_uzunluk];
};
Kayit kayit;
char four[Ad_soyad_uzunluk];
char c;
cout << "okunuyor" <<endl;
ifstream oku;
oku.open("data1.txt",fstream::out);
if(oku==NULL)
cerr << "Hata" << endl;
while(!oku.eof()){
oku >> kayit.ogrno >> kayit.ad >> kayit.soyad;
if(kayit.ogrno==NULL)
break;
oku.get(c);//Bir karakter okur
c=oku.peek();//Sonraki karakteri okur fakat imlec ilerlemez
if(c>='A' && c<='Z'){
oku >> four;
oku.ignore(1);
strcat(kayit.ad," ");
strcat(kayit.ad,kayit.soyad);
strcpy(kayit.soyad,four);
}else if(c>='0' && c<='9')
;
else if(c==NULL){
agackur(kayit.ogrno,kayit.ad,kayit.soyad);
break;
}
agackur(kayit.ogrno,kayit.ad,kayit.soyad);
}
oku.close();
}
ogrenciPtr tara,yeni;
tara = kok;
int karsilas;
bool eklenme_durumu = false;
yeni = new Ogrenci;
strcpy(yeni->ad,isim);
strcpy(yeni->soyad,soyisim);
strcpy(yeni->ogrno,talebeno);
yeni->sagPtr = NULL;
yeni->solPtr = NULL;
if(kok==NULL){
kok=yeni;
//ilk düğüm burada eklenir
dugumsayisi++;
return;
}
while((tara!=NULL) && (!eklenme_durumu)){
karsilas = strcmp(yeni->ogrno,tara->ogrno);
if(karsilas<0){
if(tara->solPtr != NULL)
tara=tara->solPtr;
else{
tara->solPtr = yeni;
eklenme_durumu = true;
}
}else if(karsilas>0){
if(tara->sagPtr != NULL)
tara = tara->sagPtr;
else{
tara->sagPtr = yeni;
eklenme_durumu = true;
}
}else
;
}
if(eklenme_durumu)
dugumsayisi++;
//Diğer düğümler yukarıdaki satırlarda eklenir
}
/**********************************************************************************************************************************
* Fonksiyonun adı:dosyadanoku *
* Fonksiyonun amacı:girdi dosyasindan ogrenci bilgilerini okuyarak agackur fonksiyonuna gönderirir *
* Giriş Parametresi: --- *
* Çıkış parametresi: --- *
* Veri yapıları:struct Kayit *
***********************************************************************************************************************************/
void Agac::dosyadanoku(){
struct Kayit{
char ad[Ad_soyad_uzunluk];
char soyad[Ad_soyad_uzunluk];
char ogrno[Ogrenci_no_uzunluk];
};
Kayit kayit;
char four[Ad_soyad_uzunluk];
char c;
cout << "okunuyor" <<endl;
ifstream oku;
oku.open("data1.txt",fstream::out);
if(oku==NULL)
cerr << "Hata" << endl;
while(!oku.eof()){
oku >> kayit.ogrno >> kayit.ad >> kayit.soyad;
if(kayit.ogrno==NULL)
break;
oku.get(c);//Bir karakter okur
c=oku.peek();//Sonraki karakteri okur fakat imlec ilerlemez
if(c>='A' && c<='Z'){
oku >> four;
oku.ignore(1);
strcat(kayit.ad," ");
strcat(kayit.ad,kayit.soyad);
strcpy(kayit.soyad,four);
}else if(c>='0' && c<='9')
;
else if(c==NULL){
agackur(kayit.ogrno,kayit.ad,kayit.soyad);
break;
}
agackur(kayit.ogrno,kayit.ad,kayit.soyad);
}
oku.close();
}
No comments:
Post a Comment