Doubly Linked List Insert at Front

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