C ile Tek Yönlü Bağlantılı Liste Uygulaması

C ile Tek Yönlü Bağlantılı Liste Uygulaması

C ile tek yönlü bağlantılı liste uygulamasının kod halini sizinle paylaşmak istedim.

C ile tek yönlü bağlantılı liste uygulamasının kod halini sizinle paylaşmak istedim.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

  typedef struct topluluk{
    
    int bilgi;
    char mesaj[100];
    struct topluluk *arka;
        
  }
  
  BLISTE *ilk=NULL, *son=NULL;
  BLISTE *ara(int);
  BLISTE *sil(int);
  BLISTE *okuklavye();
  void ekranayaz(BLISTE *);
  
  int main(){
      
      BLISTE *eklenecek, *ki;
      int bilgi,sonuc;
      char secim;
      while(1){
      puts("nEklemenListelemenAramanSilmenCikisnSeciminiz?");
      secim=getchar();
      switch(secim)
      {
          case 'E':eklenecek=okuklavye();
            if(eklenecek!=NULL)
                ekle(eklenecek);
              else
                  puts("Ekleme icin bellek dolun");
                  break;
           case 'L':sonuc=listele();
              if(sonuc==-1)
                puts("Bos liste!!!");
                break;
        case'A':puts("Aranan:");
                scanf("%d",&bilgi);
                ki=ara(bilgi);
                if(ki==NULL)
                     puts("Arana bulunamadı");
                else
                    ekranayaz(ki);
                break;
        case'S': puts("Silinecek:");
                 scanf("%d",&bilgi);
                 ki=sil(bilgi);
                 if(ki!=NULL)
                else    
                    puts("silindi");
                break;
        case'ç':
        case'Ç':
        case'c':
        case'C':puts("hoscakal");
               exit(0);
            default:puts("yanlis secimn");
    }
}
}
  int ekle(BLISTE*ki)
  {
      
      if(ilk!=NULL)
      {
          son->arka=ki;
          son=ki;
          son->arka=NULL;
          
          
      }
        else{
            ilk=ki;
            son=ilk;
            ilk->arka=NULL;
        }  
          
          return(0);    
                }        
        
    int listele()
    {
        BLISTE*p;
        p=ilk;
        if(p==NULL)
        return -1;
        while(p)
        {
            ekranayaz(p);
            p=p->arka;
            
        }
        return(0);
 }                                 
                     
    BLISET*ara(int aranan)
    {
        
        BLISTE*p;
        p=ilk;
        while(p)
        {
            if(p->bilgi==aranan)
              return p;
              p=p->arka;
        }
        return NULL;
                 }                         
                
    BLISTE *sil(int silinecek)
    {
        BLISTE*p, *bironceki;
        p=ilk;
        bironceki=NULL;
        while(p)
        {
            if(silinecek==p->bilgi)
            break;
            bironceki=p;
            p=p->arka;
        }
        if(p!=NULL)
        {
            if(bironceki==NULL)
            {
                if(ilk==son){
                    ilk=NULL;
                    son=NULL;
                }
                
                else
                  ilk=ilk->arka;
            }
            
            else{
                bironceki->arka=p->arka;
                if(bironceki->arka==NULL)
                  son=bironceki;
            }
            free(p);
            return p;
        }
        else
           return NULL;
    }
    
    void ekranayaz(BLISTE * yazilacak)
    {
        printf("bilgi:%d,mesaj:%sn",yazilacak->bilgi,yazilacak->mesaj);
        
    }
    BLISTE *okuklavye()
    {
        BLISTE *okunan;
        okunan=malloc(sizeof(BLISTE));
        if(okunan==NULL)
          return NULL;
          
          puts("bilgi giriiniz:");
          scanf("%d",&(okunan->bilgi));
          puts("mesaj giriniz:");
          scanf("%s",okunan->mesaj);
          return okunan;  
            
}

 

Muhammet Hasan Güngör
Orta Doğu Teknik Üniversitesi Bilgisayar Mühendisliği
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git