Advertisement
Miti059

doubly insert beginning(N)

Oct 13th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct Node {
  5.     int data;
  6.     struct Node *next, *prev;
  7.  
  8. }node;
  9.  
  10. node* head=NULL, *tail;
  11.  
  12. void insert_beginning(int data)
  13. {
  14.     node* newnode;
  15.     newnode=(node*)malloc(sizeof(node));
  16.     newnode->data=data;
  17.     newnode->next=NULL;
  18.     newnode->prev=NULL;
  19.     if(head==NULL) {
  20.         tail=newnode;
  21.         head=newnode;
  22.     }
  23.     else {
  24.         newnode->next=head;
  25.         head->prev=newnode;
  26.         head=newnode;
  27.     }
  28. }
  29.  
  30.  
  31. void printData()
  32. {
  33.     node*current=head;
  34.     printf("New list is (head) : ");
  35.     while(current!=NULL) {
  36.         printf("%d ", current->data);
  37.         current=current->next;
  38.     }
  39.     printf("\n");
  40. }
  41.  
  42. void printData2()
  43. {
  44.     node*current=tail;
  45.     printf("New list is (tail) : ");
  46.     while(current!=NULL) {
  47.         printf("%d ", current->data);
  48.         current=current->prev;
  49.     }
  50.     printf("\n");
  51. }
  52.  
  53. int main()
  54. {
  55.     insert_beginning(5);
  56.     insert_beginning(10);
  57.     insert_beginning(15);
  58.     insert_beginning(20);
  59.     insert_beginning(25);
  60.     printData();
  61.     printData2();
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement