Advertisement
Radoan_Ahmed

Untitled

Oct 11th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.52 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct std_info
  4. {
  5.     char name[50];
  6.     int roll;
  7.     struct std_info *pre;
  8.     struct std_info *next;
  9. } data;
  10.  
  11. data *head = NULL;
  12. data *list = NULL;
  13.  
  14. void display()
  15. {
  16.     list = head;
  17.     while(list != NULL)
  18.     {
  19.         printf("%s\n",list -> name);
  20.         printf("%d\n",list -> roll);
  21.         list = list -> next;
  22.     }
  23. }
  24.  
  25. void search_by_position(int m)
  26. {
  27.     int i;
  28.     list = head;
  29.     if(m==0)
  30.     {
  31.         printf("%s\n",list -> name);
  32.         printf("%d\n",list -> roll);
  33.         return;
  34.     }
  35.  
  36.     else
  37.     {
  38.         for(i=0; i<m; i++)
  39.         {
  40.             list = list -> next;
  41.         }
  42.         printf("%s\n",list -> name);
  43.         printf("%d\n",list -> roll);
  44.         return;
  45.     }
  46.  
  47. }
  48.  
  49. void search_by_value(int x)
  50. {
  51.     list = head;
  52.     while(list != NULL)
  53.     {
  54.         if(list -> roll == x)
  55.         {
  56.             printf("%s\n",list -> name);
  57.             printf("%d\n",list -> roll);
  58.         }
  59.         list = list -> next;
  60.     }
  61.     return;
  62.  
  63. }
  64.  
  65. void delete_by_pos(int n)
  66. {
  67.     int i;
  68.     list = head;
  69.     if(n==0)
  70.     {
  71.         head = list -> next;
  72.         free(list);
  73.         display();
  74.         return;
  75.     }
  76.     else
  77.     {
  78.         for(i=0; i<n; i++)
  79.         {
  80.             list = list -> next;
  81.         }
  82.         data *temp = list -> pre;
  83.         temp -> next = list -> next;
  84.         free(list);
  85.         display();
  86.         return;
  87.     }
  88. }
  89.  
  90. void delete_by_valu(int n)
  91. {
  92.     list = head;
  93.     while(list != NULL)
  94.     {
  95.         if(list -> roll == n)
  96.         {
  97.             data *temp = list -> pre;
  98.             temp -> next = list -> next;
  99.             free(list);
  100.             display();
  101.         }
  102.         list = list -> next;
  103.     }
  104.     return;
  105.  
  106. }
  107.  
  108. void insert_nth(int n)
  109. {
  110.     int i;
  111.     list = head;
  112.     data *N = (data*)malloc(sizeof(data));
  113.         scanf(" %[^\n]s",N -> name);
  114.         scanf("%d",&N -> roll);
  115.         N -> pre = NULL;
  116.         N -> next = NULL;
  117.     if(n==0)
  118.     {
  119.        N -> next = head;
  120.        list = head;
  121.         return;
  122.     }
  123.     else
  124.     {
  125.         for(i=0; i<n; i++)
  126.         {
  127.             list = list -> next;
  128.         }
  129.         data *temp = list -> next;
  130.         N -> pre = temp;
  131.  
  132.         return;
  133.     }
  134. }
  135.  
  136. main()
  137. {
  138.     int n,i,m,x,y,z;
  139.     printf("Enter your node amount: ");
  140.     scanf("%d",&n);
  141.     for(i=0; i<n; i++)
  142.     {
  143.         data *N = (data*)malloc(sizeof(data));
  144.         scanf(" %[^\n]s",N -> name);
  145.         scanf("%d",&N -> roll);
  146.         N -> pre = NULL;
  147.         N -> next = NULL;
  148.  
  149.         if(head == NULL)
  150.         {
  151.             head = N;
  152.             list = head;
  153.         }
  154.         else
  155.         {
  156.             list -> next = N;
  157.             N -> pre = list;
  158.             list = N;
  159.         }
  160.     }
  161.  
  162.     display();
  163.  
  164.     printf("Enter your search position: ");
  165.     scanf("%d",&m);
  166.     if(m>n)
  167.     {
  168.         printf("Invalid position\n");
  169.     }
  170.     else
  171.     {
  172.         search_by_position(m);
  173.     }
  174.     printf("Enter your search value: ");
  175.     scanf("%d",&x);
  176.     if(x>n)
  177.     {
  178.         printf("Invalid position\n");
  179.     }
  180.     else
  181.     {
  182.         search_by_value(x);
  183.     }
  184.     printf("Enter your delete position: ");
  185.     scanf("%d",&y);
  186.     if(y>n)
  187.     {
  188.         printf("Invalid position\n");
  189.     }
  190.     else
  191.     {
  192.         delete_by_pos(y);
  193.     }
  194.      printf("Enter your delete value: ");
  195.     scanf("%d",&z);
  196.     if(z>n)
  197.     {
  198.         printf("Invalid value\n");
  199.     }
  200.     else
  201.     {
  202.         delete_by_valu(z);
  203.     }
  204.  
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement