Advertisement
saimanova

linkedlist

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