Site icon IT Tutorial

BAĞLI LİSTEDE DÜĞÜM(ELEMAN) SİLME

BAĞLI LİSTEDE BİR DÜĞÜM VEYA ELEMAN SİLMEK İÇİN AŞAĞIDAKİ ANİMASYONU İNCELEYİP KODU MUTALAA ETMEYE ÇALIŞALIM ARDINDAN…

//LİSTEDEN BİR DÜĞÜM SİLME

BLİSTE *sil(int silinecek)
{
       BLİSTE *p,*birönceki;
      
       p=ilk;
       birönceki=NULL;
      
       while(p){                    //silinecek olan aranıyor
                if(silinecek==p->bilgi)
                break;
                birönceki=p;
                p=p->arka;
                }                     
                                      //silinecek listede varsa o ve bir önceki bulundu
                                     
                 if(p!=NULL) {
                             if(birönceki==NULL) {        //silinecek olan birinci düğüm
                                                 if(ilk==son) {       //listede yalnızca bir düğüm varsa
                                                 ilk=NULL;
                                                 son=NULL;
                                                 }
                             else
                                 ilk=ilk->arka;
                                 }
                         
                             else   {                //silinecek olana aradan bir düğümse
                            
                             birönceki->arka=p->arka;
                             if(birönceki->arka==NULL)
                             son=birönceki;                    //silinen son düğüm
                             }                              
                             free(p);                        //alan serbest bıraklılıyor
                             return p;                       //NULL dan farklı adres gönderiliyor
       }
                 else
                     return NULL;                            //silinmek istenen listede yok
                    
                     }                     

MEHMET SALİH DEVECİ

YAZILIM MÜHENDİSİ

Exit mobile version