Facebook
From xx, 4 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 257
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int licznikjebany =0;
  6.  
  7. struct node{
  8. node *next;
  9. int val;
  10. };
  11. void delfirst(node*&head);
  12.  
  13. void usunwieksze(node*&head,int odczego)
  14. {
  15.     node*temp=head;
  16.     node*temp2;
  17.  while (temp != NULL && temp->val > odczego) {
  18.         head = temp->next;
  19.         delete temp;
  20.         temp = head;
  21.     }
  22.  
  23.     while(temp!=NULL)
  24.         {
  25.  
  26.          while(temp!=NULL &&temp->val <=odczego)
  27.     {
  28.         temp2=temp;
  29.         temp=temp->next;
  30.     }
  31.  
  32.  
  33.  
  34.     if(temp==NULL)
  35.     return;
  36.  
  37.     temp2->next=temp->next;
  38.     delete temp;
  39.     temp=temp2->next;
  40.  
  41.  
  42.         }
  43.  
  44. }
  45.  
  46. void add(node *&head,int x)
  47. {
  48.     licznikjebany++;
  49.     node *temp=new node;
  50.     temp->val=x;
  51.     temp->next=head;
  52.     head=temp;
  53.  
  54. }
  55. void addtosorted(node *&head,int x)
  56. {
  57. licznikjebany++;
  58.    add(head,NULL);
  59.     node *temp2=head;
  60.     while((temp2->next!=NULL) && (temp2->next->val<x))
  61.           {
  62.               temp2=temp2->next;
  63.           }
  64.           //dodawanie nody
  65.           node *temp = new node;
  66.           temp->val=x;
  67.           temp->next=temp2->next;
  68.           temp2->next=temp;
  69.           delfirst(head);
  70.  
  71. }
  72.  
  73. node* split(node *&head)
  74. {
  75.   if(head==NULL)
  76.         return NULL;
  77.   node *temp=head;
  78.   node *temp2=head->next;
  79.   while(temp2!=NULL)
  80.   {
  81.       temp2=temp2->next;
  82.       if(temp2==NULL)
  83.         break;
  84.       temp2=temp2->next;
  85.       temp=temp->next;
  86.   }
  87.     node *dozwrocenia= temp->next;
  88.     temp->next=NULL;
  89.     return dozwrocenia;
  90. }
  91.  
  92. //void polacz(node *&head,node*&head2)
  93. //{
  94. //}
  95.  
  96. void show(node *head)
  97. {
  98.     node *temp=head;
  99.     while(temp!=NULL)
  100.     {
  101.  
  102.         cout<<temp->val<<"-->";
  103.          temp=temp->next;
  104.     }
  105.  
  106. }
  107. void maxi(node *head)
  108. {
  109.     node *temp=head;
  110.     node *temp2=head;
  111.     while(temp  !=NULL)
  112.     {
  113.         if(temp2->val < temp->val)
  114.         {
  115.          temp2=temp;
  116.         }
  117.  
  118.         temp=temp->next;
  119.  
  120.  
  121.     }
  122.  cout<<temp2->val;
  123. }
  124.  
  125. void delfirst(node*&head)
  126. {
  127.     if(head!=NULL)
  128.     {
  129.         licznikjebany--;
  130.         node *temp=head;
  131.         head=temp->next;
  132.         delete temp;
  133.  
  134.  
  135.     }
  136. }
  137.  
  138. void usunx2(node *&head)
  139. {
  140.     if(head!=NULL)
  141.     {
  142.         node *temp=head;
  143.         node *temp2=head->next;
  144.         while(temp!=NULL && temp2!=NULL)
  145.         {
  146.             temp->next=temp2->next;
  147.             delete temp2;
  148.             temp=temp->next;
  149.             if(temp!=NULL)
  150.             {
  151.                 temp2=temp->next;
  152.             }
  153.  
  154.  
  155.         }
  156.     }
  157.  
  158. }
  159.  
  160. int srednia(node*head)
  161. {
  162.     int iloscob=0;
  163.     int dodajemy=0;
  164.     if(head==NULL)
  165.        return 0;
  166.     node *temp=head;
  167.     while(temp)
  168.     {
  169.         dodajemy=dodajemy+temp->val;
  170.         temp=temp->next;
  171.         iloscob++;
  172.  
  173.     }
  174.     return dodajemy/iloscob;
  175.  
  176. }
  177. void addxx(node*&head)
  178. {
  179.     node *temp=new node;
  180.     temp=head;
  181.     while(temp!=NULL)
  182.     {
  183.         add(temp->next,temp->val);
  184.         temp=temp->next->next;
  185.  
  186.     }
  187.  
  188.  
  189. }
  190. void addpoval(node*&head)
  191. {
  192.     node *temp=new node;
  193.     temp=head;
  194.     while(temp!=NULL)
  195.     {
  196.         for(int i=0;i<temp->val-1;i++)
  197.         {
  198.         add(temp->next,temp->val);
  199.         temp=temp->next;
  200.  
  201.         }
  202.         temp=temp->next;
  203.     }
  204.  
  205.  
  206. }
  207.  
  208.  
  209.  
  210. int main()
  211. {
  212.  
  213.     node *head=NULL;
  214.  
  215.     //delfirst(head);
  216.     show(head);
  217.     cout<<endl<<"wywolanie"<<endl;
  218.     addtosorted(head,3);
  219.     addtosorted(head,1);
  220.     addtosorted(head,3);
  221.     addtosorted(head,-2);
  222.     addtosorted(head,5);
  223.  
  224.    node* head2=split(head);
  225.  
  226.  
  227.    //addpoval(head);
  228.   // usunx2(head);
  229.    cout<<licznikjebany<<endl;
  230.    show(head);
  231.     //addxx(head);
  232.  
  233.  
  234.  
  235.     return 0;
  236. }
  237.