Şimdi Ara

Kuyruk(alfabetik sıaralama)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
1
Cevap
0
Favori
381
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar dünden beri uğraşıp işin içinden çıkamıyorum bir türlü.Sorum şu Kayıt eklerken soyad öncelikli yani alfabetik bir sırayla(küçükten büyüğe) soyadları ekleyecek.Silerken de öncelikli olanı silinecek.Bu C de çift bağlı liste ile olacak.Strcmp komutu kullanayım dedim işin içinden çıkamadım.

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


    typedef struct Liste{
    char numara[10];
    char ad[20];
    char soyad[20];
    char bilgi;
    char oncelik;

    struct Liste *link;
    }Liste;
    Liste *onceki=NULL;

    void Ekle(char ad, char soyad);
    char sil();
    void Listele();
    char isEmpty();

    main()
    {
    int choice;
    char ad,soyad;
    while(1)
    {
    printf("1.Ekle\n");
    printf("2.Sil\n");
    printf("3.Listele\n");
    printf("4.Cikis\n");
    printf("Secim yapiniz : ");
    scanf("%d", &choice);

    switch(choice)
    {
    case 1:
    printf("İsim giriniz : ");
    scanf("%s",&ad);
    printf("Soyadı giriniz : ");
    scanf("%s",&soyad);
    Ekle(ad, soyad);
    break;
    case 2:
    printf("Silinen isim %s\n",sil());
    break;
    case 3:
    Listele();
    break;
    case 4:
    exit(1);
    default :
    printf("Yanlis secim\n");
    }/*End of switch*/
    }/*End of while*/
    }/*End of main()*/


    void Ekle(char ad,char soyad)
    {
    struct Liste *gecici,*p;

    gecici=(struct Liste *)malloc(sizeof(struct Liste));
    if(gecici==NULL)
    {
    printf("Bellek bos\n");
    return;
    }
    gecici->bilgi=ad;
    gecici->oncelik=soyad;

    /*Queue is empty or item to be added has priority more than first element*/
    if( isEmpty() || soyad < onceki->oncelik )
    {
    gecici->link=onceki;
    onceki=gecici;
    }
    else
    {
    p = onceki;
    while( p->link!=NULL && p->link->oncelik<=soyad )
    p=p->link;
    gecici->link=p->link;
    p->link=gecici;
    }
    }/*End of insert()*/



    char sil()
    {
    struct Liste *gecici;
    char ad;
    if( isEmpty() )
    {
    printf("Kuyruk Dolu\n");
    exit(1);
    }
    else
    {
    gecici=onceki;
    ad=gecici->bilgi;
    onceki=onceki->link;
    free(gecici);
    }
    return ad;
    }/*End of del()*/

    char isEmpty()
    {
    if( onceki == NULL )
    return 1;
    else
    return 0;

    }/*End of isEmpty()*/

    void Listele()
    {
    struct Liste *ptr;
    ptr=onceki;
    if( isEmpty() )
    printf("Kuyruk boş\n");
    else
    { printf("Kuyruk:\n");
    printf("Soyad Ad\n");
    while(ptr!=NULL)
    {
    printf("\n%s %s\n",ptr->oncelik,ptr->bilgi);
    ptr=ptr->link;
    }
    }
    }/*End of display() */









     Kuyruk(alfabetik sıaralama)







  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.