Hello friend,
here i am write this article for doubly linked list.So i hope you like this.
Happy coding💚
- Doubly linked list
#include<stdio.h> #include<stdlib.h> struct node { int data; struct node *next,*prev; }*first=NULL,*temp=NULL,*newnode=NULL,*last=NULL; struct node* createnode() { int x; temp=(struct node*)malloc(sizeof(struct node)); printf("\nEnter value:"); scanf("%d",&x); if(temp!=NULL) { temp->data=x; temp->next=NULL; temp->prev=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=last=newnode; else { newnode->next=first; first->prev=newnode; first=newnode; } } display(); } void insl() { newnode=createnode(); if(first==NULL) { first=last=newnode; } else { last->next=newnode; newnode->prev=last; last=newnode; } display(); } int countnode() { int i=0; for(temp=first;temp->next!=NULL;temp=temp->next,i++); i++; return i; } void delf() { if(first==NULL) printf("\nUnderflow"); else if(first==last) { free(first); first=NULL; } else { temp=first; first->next->prev=NULL; first=temp->next; free(temp); } 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; first->prev=NULL; free(temp); } else { for(temp=first;i<pos-1;i++,temp=temp->next); temp->prev->next=temp->next; temp->next->prev=temp->prev; free(temp); } } display(); } void dell() { if(first==NULL) printf("\nunderflow"); else if(first==last) { free(first); first=NULL; } else { last->prev->next=NULL; temp=last; last=last->prev; free(temp); } display(); } main() { int choice; while(1) { printf("\nMENU\n1.insert at first\n2.insert at last\n3.delete at first\n4.delete before specific position\n5.delete last\n6.display linked list\n7.EXIT\n"); printf("\nENTER CHOICE:"); scanf("%d",&choice); switch(choice) { case 1: insf(); break; case 2: insl(); break; case 3: delf(); break; case 4: delbsp(); break; case 5: dell(); break; case 6: display(); break; case 7: exit(0); default : printf("\nenter valid choice"); } } } |
Happy coding💚
Post a Comment
Hii