Doubly Linked List Delete at Front

  1. #include<stdio.h>  
  2. #include<conio.h>  
  3. #include<stdlib.h>  
  4. typedef struct node{  
  5.     int data;  
  6.     struct node* next;  
  7.     struct node* prev;  
  8. }node;  
  9. struct node* head=NULL;  
  10. void insertAtFront(int x)  
  11. {  
  12.     struct node* temp=NULL;  
  13.     temp=(node*)malloc(sizeof(struct node));  
  14.     temp->data=x;  
  15.     if(head==NULL)  
  16.     {  
  17.         temp->next=NULL;  
  18.         temp->prev=head;  
  19.         head=temp;  
  20.     }  
  21.     else  
  22.     {  
  23.         temp->next=head;  
  24.         temp->prev=head;  
  25.         head=temp;  
  26.     }  
  27. }  
  28. void print()  
  29. {  
  30.     struct node* temp=head;  
  31.     while(temp!=NULL)  
  32.     {  
  33.         printf("%d",temp->data);  
  34.         temp=temp->next;  
  35.     }  
  36. }  
  37. void  DeleteAtFront()  
  38. {  
  39.     struct node* temp=head;  
  40.     if(temp==NULL)  
  41.     {  
  42.         printf("Cannot be deleted");  
  43.     }  
  44.     else  
  45.     {  
  46.         head=temp->next;  
  47.         free(temp);  
  48.     }  
  49.     printf("  After Deletion  ");  
  50.     print();  
  51. }  
  52. void main()  
  53. {  
  54.     insertAtFront(2);  
  55.     insertAtFront(3);  
  56.     insertAtFront(5);  
  57.     insertAtFront(4);  
  58.     print();  
  59.     DeleteAtFront();  
  60. }