Advertisement
shohan11421

data_structure

Mar 2nd, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. struct node
  4. {
  5.     int data;
  6.     struct node *next;
  7. };
  8. struct node *head = NULL, *temp;
  9. void creat()
  10. {
  11.     struct node *n1, *n2, *n3;
  12.     n1 = (struct node *) malloc(sizeof(struct node));
  13.     n2 = (struct node *) malloc(sizeof(struct node));
  14.     n3 = (struct node *) malloc(sizeof(struct node));
  15.     n1 -> data = 10;
  16.     n2 -> data = 20;
  17.     n3 -> data = 30;
  18.     n1 -> next = n2;
  19.     n2 -> next = n3;
  20.     n3 -> next = NULL;
  21.     head = n1;
  22. }
  23. void count()
  24. {
  25.     temp = head;
  26.     int cnt = 0;
  27.     while(temp)
  28.     {
  29.         cnt++;
  30.         temp = temp -> next;
  31.     }
  32.     printf("Total = %d\n", cnt);
  33. }
  34. void search(int a)
  35. {
  36.     temp = head;
  37.     int flag = 0;
  38.     while(temp)
  39.     {
  40.         if(temp -> data == a) flag = 1;
  41.         temp = temp -> next;
  42.     }
  43.     if(flag == 1) printf("Found\n");
  44.     else printf("Not Found\n");
  45. }
  46. void insert_beg(int a)
  47. {
  48.     struct node *n;
  49.     n = (struct node *) malloc(sizeof(struct node));
  50.     n -> data = a;
  51.     n -> next = head;
  52.     head = n;
  53. }
  54. void insert_last(int a)
  55. {
  56.     struct node *n;
  57.     n = (struct node *) malloc(sizeof(struct node));
  58.     n -> data = a;
  59.     n -> next = NULL;
  60.     temp = head;
  61.     while(temp -> next)
  62.     {
  63.         temp = temp -> next;
  64.     }
  65.     temp -> next = n;
  66. }
  67. void insert_any(int a, int pos)
  68. {
  69.     struct node *n;
  70.     n = (struct node *) malloc(sizeof(struct node));
  71.     n -> data = a;
  72.     temp = head;
  73.     int i;
  74.     for(i = 0; i < pos - 2; i++)
  75.     {
  76.         temp = temp -> next;
  77.     }
  78.     n -> next = temp -> next;
  79.     temp -> next = n;
  80. }
  81. void del_first()
  82. {
  83.     temp = head;
  84.     head = temp -> next;
  85.     free(temp);
  86. }
  87. void del_last()
  88. {
  89.     struct node *temp2;
  90.     temp = head;
  91.     while(temp -> next)
  92.     {
  93.         temp2 = temp;
  94.         temp = temp -> next;
  95.     }
  96.     temp2 -> next = NULL;
  97.     free(temp);
  98. }
  99. void del_any_pos(int pos)
  100. {
  101.     int count = 1;
  102.     struct node *temp2;
  103.     temp = head;
  104.     while(count < 1)
  105.     {
  106.         count++;
  107.         temp2 = temp;
  108.         temp = temp -> next;
  109.     }
  110.     temp2 -> next = temp -> next;
  111.     free(temp);
  112. }
  113. void print()
  114. {
  115.     temp = head;
  116.     while(temp)
  117.     {
  118.         printf("%d\n", temp -> data);
  119.         temp = temp ->next;
  120.     }
  121. }
  122. int main()
  123. {
  124.     int a;
  125.     creat();
  126.     scanf("%d", &a);
  127.     search(a);
  128.     count();
  129.     insert_beg(5);
  130.     insert_last(40);
  131.     insert_any(15,2);
  132.     del_first();
  133.     del_last();
  134.     del_any_pos(2);
  135.     print();
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement