Şimdi Ara

linked list acil yardım lütfen!!!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
478
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam arkadaşlar yarınki finalde data structure daki linked listler den eleman ekleme ve eleman çıkarma sorusu sorulacakmış.ben bir kod yazdım ancak yazdığım kod sadece 1. ve 2. elemandan sonra eleman atıyor ve siliyor ama soruda bana 48. elemandan sonra ekle veya sil derse nasıl yapacağımı bilemiyorum.while veya for döngüsüyle yapılabilecek bir şey ama bir türlü mantığını kuramadım lütfen yardım edermisiniz.
    Kodum:
    #include<stdio.h>
    #include<stdlib.h>
    struct node{
    int data;
    struct node *next;
    };
    int is_empty(struct node *);
    struct node * newnode(struct node *);
    struct node * insertFront(struct node *, int);
    struct node * insertBack(struct node *, int );
    void insertAfter(struct node *, int );
    struct node * deleteFront(struct node *);
    struct node * deleteBack(struct node *);
    void deleteAfter(struct node *);
    void printLL(struct node*);
    int main(void)
    {
    struct node *header;
    header=NULL;
    int a,b,c;
    printf("enter");
    scanf("%d",&a);
    printf("enter");
    scanf("%d",&b);
    printf("enter");
    scanf("%d",&c);
    header=insertBack(header,5);
    header=insertBack(header,a);
    header=insertBack(header,7);
    header=insertBack(header,1);
    header=insertBack(header,0);
    header=insertBack(header,555);
    printLL(header);
    insertAfter(header,b);
    insertAfter(header->next,c);
    printLL(header);
    deleteAfter(header);
    printLL(header);
    deleteAfter(header->next);
    printLL(header);
    header=insertFront(header,8);
    header=insertBack(header,9);
    printLL(header);
    header=deleteBack(header);
    header=deleteFront(header);
    header=deleteBack(header);
    printLL(header);
    system("pause");
    return 0;
    }

    int is_empty( struct node *header)
    {
    if(header==NULL)
    return 1; //TRUE
    else
    return 0; //FALSE
    }
    struct node * newnode(int d)
    {
    struct node *temp;
    temp=(struct node *) malloc(sizeof(node));
    temp->data =d;
    temp->next=NULL;
    return temp;
    }
    struct node * insertFront(struct node *header, int d)
    {
    struct node *temp;
    temp=newnode(d);
    temp->next =header;
    header=temp;
    return header;
    }
    struct node * insertBack(struct node *header, int d)
    {
    struct node *temp, *headertemp;
    temp=newnode(d);
    if(header==NULL)
    {
    header=temp;
    return header;
    }
    headertemp=header;
    while(headertemp->next!=NULL)
    headertemp =headertemp->next;
    headertemp->next=temp;
    return header;
    }
    void insertAfter(struct node *afterNode, int d)
    {
    struct node *temp;
    temp=newnode(d);
    temp->next=afterNode->next;
    afterNode->next=temp;
    }
    struct node * deleteFront(struct node *header)
    {
    struct node *temp;
    if(header==NULL)
    return header;
    temp=header;
    header= header->next;
    free(temp);
    return header;
    }
    struct node * deleteBack(struct node *header)
    {
    struct node *temp, *headertemp;
    if(header==NULL)
    return header;
    headertemp=header;
    while(headertemp->next->next!=NULL)
    headertemp =headertemp->next;
    temp=headertemp->next;
    headertemp->next=NULL;
    free(temp);
    return header;
    }

    void deleteAfter(struct node *afterNode)
    {
    struct node *temp;
    if(afterNode->next==NULL || afterNode==NULL)
    return;
    temp =afterNode->next;
    afterNode->next=temp->next;
    free(temp);
    }
    void printLL(struct node*header)
    {
    struct node *headertemp;
    headertemp=header;
    printf("\n");
    while(headertemp!=NULL)
    {
    printf("%d\t",headertemp->data);
    headertemp=headertemp->next;
    }
    }







  • Yapay Zeka’dan İlgili Konular
    Çok acil lütfen invalid cd key
    16 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.