Doubly Linked List Insert At End

  1. #include<stdio.h>  
  2. #include<stdlib.h>  
  3. #include<conio.h>  
  4. typedef struct node  
  5. {  
  6.     int data;  
  7.     struct node* next;  
  8.     struct node* prev;  
  9. }node;  
  10. struct node* head=NULL;  
  11. void insertAtEnd(int x)  
  12. {  
  13. struct node* temp=NULL;  
  14. temp=(node*)malloc(sizeof(struct node));  
  15. temp->data=x;  
  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.     while(temp2->next!=NULL)  
  26.     {  
  27.         temp2=temp2->next;  
  28.     }  
  29. temp2->next=temp;  
  30. temp->prev=temp2;  
  31. temp->next=NULL;  
  32.   
  33.       
  34. }  
  35.       
  36. }  
  37. void print()  
  38. {  
  39.     struct node* temp=head;  
  40.     while(temp!=NULL)  
  41.     {  
  42.         printf("%d",temp->data);  
  43.         temp=temp->next;  
  44.     }  
  45. }  
  46.   
  47. void main()  
  48. {  
  49. insertAtEnd(2);  
  50. insertAtEnd(3);  
  51. insertAtEnd(6);  
  52. insertAtEnd(4);  
  53. print();  
  54. getch();  
  55. }