Advertisement
muftY

singly Ovi

Feb 14th, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.28 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct data
  5. {
  6.     int a;
  7.     struct data *next;
  8. } data;
  9.  
  10. data *head=NULL;
  11.  
  12. void insert_at_first(int x)
  13. {
  14.     data *new_node=(data*)malloc(sizeof(data));
  15.  
  16.     new_node->a=x;
  17.     new_node->next=NULL;
  18.  
  19.     if(head==NULL)
  20.     {
  21.         head=new_node;
  22.         return;
  23.     }
  24.  
  25.     new_node->next=head;
  26.     head=new_node;
  27. }
  28.  
  29. void insert_at_end(int x)
  30. {
  31.     data *new_node=(data*)malloc(sizeof(data));
  32.  
  33.     new_node->a=x;
  34.     new_node->next=NULL;
  35.  
  36.     data *temp=head;
  37.     if(head==NULL)
  38.     {
  39.         head=new_node;
  40.         return;
  41.     }
  42.     while(temp->next!=NULL)
  43.     {
  44.         temp=temp->next;
  45.     }
  46.     temp->next=new_node;
  47.  
  48. }
  49. void insert_at_nth_pos(int n,int x)
  50. {
  51.     data *new_node=(data*)malloc(sizeof(data));
  52.     new_node->a=x;
  53.     new_node->next=NULL;
  54.  
  55.     if(n==1 || head==NULL)
  56.     {
  57.         if(head==NULL)
  58.         {
  59.  
  60.             printf("!!! Caution:Given Position is not avavilable .\nThat's why your input was placed at the 1st Position\n\n");
  61.         }
  62.         new_node->next=head;
  63.         head=new_node;
  64.         return;
  65.     }
  66.     data *temp=head;
  67.     n=n-2;
  68.     while(n-- && temp->next!=NULL)
  69.     {
  70.         temp=temp->next;
  71.     }
  72.     new_node->next=temp->next;
  73.     temp->next=new_node;
  74. }
  75. void delete_by_pos(int n)
  76. {
  77.  
  78.     data *del=NULL;
  79.     data *temp=head;
  80.     if(head==NULL)
  81.     {
  82.         printf("\nSorry, nothing to delete\n\n");
  83.         return;
  84.     }
  85.     if(n==1)
  86.     {
  87.         del=head;
  88.         head=head->next;
  89.         free(del);
  90.     }
  91.  
  92.     n=n-2;
  93.  
  94.     while(n-- && temp->next!=NULL)
  95.     {
  96.         temp=temp->next;
  97.         if(temp->next==NULL)
  98.         {
  99.             return;
  100.         }
  101.     }
  102.     if(temp->next==NULL)
  103.     {
  104.         printf("\nSorry, nothing to delete\n\n");
  105.         return;
  106.     }
  107.     del=temp->next;
  108.     temp->next=del->next;
  109.     free(del);
  110.  
  111. }
  112. void delete_by_value(int x)
  113. {
  114.  
  115.     data *del=NULL;
  116.     data *temp=head;
  117.     if(head==NULL)
  118.     {
  119.         printf("\nSorry, nothing to delete\n\n");
  120.         return;
  121.     }
  122.     if(head->a==x)
  123.     {
  124.         del=head;
  125.         head=del->next;
  126.         free(del);
  127.         return;
  128.     }
  129.     while(temp->next->a!=x)
  130.     {
  131.         temp=temp->next;
  132.         if(temp->next==NULL)
  133.         {
  134.             printf("\nSorry, nothing to delete\n\n");
  135.             return;
  136.         }
  137.     }
  138.     del=temp->next;
  139.     temp->next=del->next;
  140.     free(del);
  141. }
  142. int sum()
  143. {
  144.     int s=0;
  145.     data *temp=head;
  146.     while(temp!=NULL)
  147.     {
  148.         s+=temp->a;
  149.         temp=temp->next;
  150.  
  151.     }
  152.     return s;
  153. }
  154. double avrg()
  155. {
  156.     double av=0;
  157.     int count=0;
  158.     data *temp=head;
  159.     while(temp!=NULL)
  160.     {
  161.         av+=temp->a;
  162.         count++;
  163.         temp=temp->next;
  164.  
  165.     }
  166.     if(count==0)
  167.     {
  168.         printf("\nYou have not input any value yet.\n");
  169.         printf("***Please Chose Another option...***\n");
  170.         return 0;
  171.     }
  172.     return av;
  173. }
  174.  
  175.  
  176. void print()
  177. {
  178.  
  179.     data *temp=head;
  180.  
  181.     while(temp!=NULL)
  182.     {
  183.         printf("%d ",temp->a);
  184.         temp=temp->next;
  185.     }
  186.     printf("\n");
  187.  
  188. }
  189.  
  190. int main()
  191. {
  192.     insert_at_first(33);
  193.     insert_at_end(44);
  194.  
  195.     insert_at_nth_pos(2,45);
  196.     print();
  197.     delete_by_pos(2);
  198.     delete_by_value(44);
  199.     print();
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement