JHJiban

Singly Link List Assignment

Feb 13th, 2020
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.11 KB | None | 0 0
  1. /*
  2. Name: Jiban
  3. ID: 192-15-13117
  4. Section: C
  5. Batch: 53rd
  6. */
  7. #include<stdio.h>
  8. #include<stdlib.h>
  9. typedef struct Data
  10. {
  11.     int a;
  12.     struct Data *next;
  13. } Data;
  14.  
  15. Data *head=NULL;
  16.  
  17. void insrt_at_fst(int n)
  18. {
  19.     Data *tmp=head;
  20.     Data *new_node=(Data*) malloc(sizeof  (Data));
  21.     new_node->a=n;
  22.     new_node->next=NULL;
  23.     if(head==NULL)
  24.     {
  25.         head=new_node;
  26.         return;
  27.     }
  28.     new_node->next=head;
  29.     head=new_node;
  30. }
  31.  
  32. void insrt_at_end(int n)
  33. {
  34.     Data *tmp=head;
  35.     Data *new_node=(Data*) malloc(sizeof  (Data));
  36.     new_node->a=n;
  37.     new_node->next=NULL;
  38.     if(head==NULL)
  39.     {
  40.         head=new_node;
  41.         return;
  42.     }
  43.     while(tmp->next!=NULL)
  44.     {
  45.         tmp=tmp->next;
  46.     }
  47.     tmp->next=new_node;
  48. }
  49.  
  50. void insrt_at_xth(int x, int n)
  51. {
  52.     Data *tmp=head;
  53.     Data  *new_node=(Data*) malloc(sizeof (Data));
  54.     new_node->a=n;
  55.     new_node->next=NULL;
  56.  
  57.     if(head==NULL||x==1)
  58.     {
  59.         new_node->next=head;
  60.         head=new_node;
  61.         return;
  62.     }
  63.     x=x-2;
  64.     while(x--&&tmp->next!=NULL)
  65.     {
  66.         tmp=tmp->next;
  67.     }
  68.     new_node->next=tmp->next;
  69.     tmp->next=new_node;
  70. }
  71.  
  72. void dlt_by_pstn(int x)
  73. {
  74.     Data *tmp=head;
  75.     if(head==NULL)
  76.     {
  77.         printf("No data found!\n");
  78.         return;
  79.     }
  80.     if(x==1)
  81.     {
  82.         head=tmp->next;
  83.         free(tmp);
  84.         return;
  85.     }
  86.     x=x-2;
  87.     while(x-- && tmp->next!=NULL)
  88.     {
  89.         tmp=tmp->next;
  90.     }
  91.     Data *dlt=tmp->next;
  92.     tmp->next=dlt->next;
  93.     free(dlt);
  94. }
  95.  
  96. void dlt_by_vlu(int n)
  97. {
  98.     Data *tmp=head;
  99.     if(head==NULL)
  100.     {
  101.         printf("No match found!\n");
  102.     }
  103.     if(tmp->next==NULL&&tmp->a==n)
  104.     {
  105.         head=NULL;
  106.         free(tmp);
  107.         printf("Deleted integer %d\n",n);
  108.         return;
  109.     }
  110.     if(tmp->a==n)
  111.     {
  112.         head=head->next;
  113.         free(tmp);
  114.         printf("Deleted integer %d\n",n);
  115.         return;
  116.     }
  117.     while(tmp->next->a!=n)
  118.     {
  119.         tmp=tmp->next;
  120.     }
  121.     Data *del=tmp->next;
  122.     tmp->next=del->next;
  123.     free(del);
  124.     printf("Deleted integer %d\n",n);
  125.     return;
  126. }
  127.  
  128. int cnt()
  129. {
  130.     int ct=0;
  131.     Data *tmp=head;
  132.     while(tmp!=NULL)
  133.     {
  134.         ct++;
  135.         tmp=tmp->next;
  136.     }
  137.     printf("Number of integer %d\n",ct);
  138.     return ct;
  139.  
  140. }
  141.  
  142. int add()
  143. {
  144.     int ttl=0;
  145.     Data *tmp=head;
  146.     while(tmp!=NULL)
  147.     {
  148.  
  149.         ttl=ttl+tmp->a;
  150.         tmp=tmp->next;
  151.     }
  152.  
  153.     printf("Sum of inputed integers %d\n",ttl);
  154.     return ttl;
  155. }
  156.  
  157. void avg(float a,float b)
  158. {
  159.     float avg;
  160.     avg=a/b;
  161.     printf("Average of inputed integers %.2f\n",avg);
  162. }
  163.  
  164. void print()
  165. {
  166.     Data *tmp=head;
  167.     while(tmp!=NULL)
  168.     {
  169.         printf("Inputed integer %d\n",tmp->a);
  170.         tmp=tmp->next;
  171.     }
  172. }
  173.  
  174. int main()
  175. {
  176.     float sum,ct;
  177.     head=NULL;
  178.     insrt_at_end(6);
  179.     insrt_at_fst(8);
  180.     insrt_at_end(5);
  181.     insrt_at_fst(9);
  182.     insrt_at_end(1);
  183.     insrt_at_xth(5,4);
  184.     dlt_by_pstn(3);
  185.     sum=add();
  186.     ct=cnt();
  187.     avg(sum,ct);
  188.     dlt_by_vlu(8);
  189.     /*search(1);
  190.     */
  191.     print();
  192.     return 0;
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment