Miti059

insert any position

Oct 13th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.80 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_any_position(int data)
  13. {
  14.     int cnt=1,n;
  15.     printf("Enter the position: ");
  16.     scanf("%d",&n);
  17.     node* newnode;
  18.     newnode=(node*)malloc(sizeof(node));
  19.     newnode->data=data;
  20.     newnode->next=NULL;
  21.     newnode->prev=NULL;
  22.  
  23.     if(head==NULL) {
  24.         tail=newnode;
  25.         head=newnode;
  26.     }
  27.     else if(n==1) {
  28.         newnode->next=head;
  29.         head->prev=newnode;
  30.         head=newnode;
  31.     }
  32.     else {
  33.         node*current=head;
  34.         while(cnt<n-1) {
  35.             current=current->next;
  36.             cnt++;
  37.         }
  38.         if(current->next == NULL) {
  39.             tail = newnode;
  40.             current->next=newnode;
  41.             newnode->prev=current;
  42.         }
  43.         else {
  44.             newnode->next=current->next;
  45.             current->next->prev=newnode;
  46.             current->next=newnode;
  47.             newnode->prev=current;
  48.         }
  49.     }
  50. }
  51.  
  52. void printData()
  53. {
  54.     node*current=head;
  55.     printf("New list is: ");
  56.     while(current!=NULL) {
  57.         printf("%d ", current->data);
  58.         current=current->next;
  59.     }
  60.     printf("\n");
  61. }
  62.  
  63. void printData2()
  64. {
  65.     node*current=tail;
  66.     printf("New list is: ");
  67.     while(current!=NULL) {
  68.         printf("%d ", current->data);
  69.         current=current->prev;
  70.     }
  71.     printf("\n");
  72. }
  73.  
  74. int main()
  75. {
  76.     insert_any_position(5);
  77.     printData();
  78.     printData2();
  79.     insert_any_position(10);
  80.     printData();
  81.     printData2();
  82.     insert_any_position(15);
  83.     printData();
  84.     printData2();
  85.     insert_any_position(20);
  86.     printData();
  87.     printData2();
  88.     insert_any_position(25);
  89.     printData();
  90.     printData2();
  91.     return 0;
  92. }
Add Comment
Please, Sign In to add comment