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; } }