Hello friend, This is Darshan and here I have perform the simply linked list program in easy method so enjoy this.......
- Singly Linked List
#include<stdio.h> #include<stdlib.h> struct node { int data; struct node *next; }*first=NULL,*temp=NULL,*newnode=NULL,*t=NULL; struct node* createnode() { int x; struct node*temp; temp=(struct node*)malloc(sizeof(struct node)); printf("\nEnter value:"); scanf("%d",&x); if(temp!=NULL) { temp->data=x; temp->next=NULL; return temp; } else { printf("\nMemory not allocated"); return 0; } } void display() { if(first!=NULL) { for(temp=first;temp->next!=NULL;temp=temp->next) printf("%d->",temp->data); printf("%d->NULL",temp->data); } else printf("\nLinked list is empty"); } void insf() { newnode=createnode(); if(newnode==NULL) printf("\nMemory not allocated."); else { if(first==NULL) first=newnode; else { newnode->next=first; first=newnode; } } display(); } void insl() { newnode=createnode(); if(first==NULL) { first=newnode; } else { for(temp=first;temp->next!=NULL;temp=temp->next); temp->next=newnode; newnode->next=NULL; } display(); } int countnode() { int i=0; for(temp=first;temp->next!=NULL;temp=temp->next,i++); i++; return i; } void inssp() { int n,i,pos; printf("\nENter position to add:"); scanf("%d",&pos); n=countnode(); if(pos>n) printf("\nEnter valid position"); else { for(temp=first,i=1;i<pos-1;i++,temp=temp->next); newnode=createnode(); newnode->next=temp->next; temp->next=newnode; } display(); } void insord() { newnode=createnode(); if(first==NULL) first=newnode; else { if(newnode->data<=first->data) { newnode->next=first; first=newnode; } else { for(temp=first;temp->next!=NULL&&newnode->data>=temp->next->data;temp=temp->next); newnode->next=temp->next; temp->next=newnode; } } display(); } void delf() { if(first!=NULL) { struct node *t; t=first; temp=t->next; first=temp; free(t); } display(); } void delasp() { int pos,i=1; printf("\nEnter position"); scanf("%d",&pos); if(pos>=countnode()) { printf("\nEnter valid position\n"); } else { for(temp=first;i<pos;i++,temp=temp->next); t=temp->next; temp->next=t->next; free(t); } display(); } void delbsp() { int pos,i=1; printf("\nEnter position"); scanf("%d",&pos); if(pos>countnode()) { printf("\nEnter valid position\n"); } else { if(pos==1) printf("\nEnter valid number"); else if(pos==2) { temp=first; first=temp->next; free(temp); } else { for(temp=first;i<pos-2;i++,temp=temp->next); t=temp->next; temp->next=t->next; free(t); } } display(); } main() { int choice; while(1) { printf("\nMENU\n1.insert at first\n2.insert at last\n3.insert in order\n4.delete at first\n5.delete after specific position\n6.delete before specific position\n7.display linked list\n8.EXIT\n"); scanf("%d",&choice); switch(choice) { case 1: insf(); break; case 2: insl(); break; case 3: insord(); break; case 4: delf(); break; case 5: delasp(); break; case 6: delbsp(); break; case 7: display(); break; case 8: exit(0); default : printf("\nenter valid choice"); } } } |
happy coding✌😎
Post a Comment
Hii