Advertisement
saimanova

Untitled

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