Advertisement
majczel23000

[AiSD] 1e

Nov 30th, 2017
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. //Zadanie 1
  7. const int N = 10;
  8. int dane[N];
  9.  
  10. void init1()
  11. { //inicjalizacja tablicy do zadania 1
  12.     srand( time( NULL ) );
  13.     for(int i=0; i<N;i++)
  14.         dane[i]=rand()%10;
  15. }
  16. int podziel()
  17. {
  18.     int lewy = 0;
  19.     int prawy = N-1;
  20.     int x = dane[lewy];
  21.     int i = lewy;
  22.     int j = prawy;
  23.     while(true)
  24.     {
  25.         while(dane[j] > x)
  26.             j--;
  27.         while(dane[i] < x)
  28.             i++;
  29.         if(i < j)
  30.         {
  31.             swap(dane[i],dane[j]);
  32.             i++;
  33.             j--;
  34.         }
  35.         else
  36.             return j;   //pkt podzialu tablicy
  37.     }
  38. }
  39.  
  40. void drukuj()
  41. {
  42.     for(int i = 0; i< N; i++)
  43.         cout<<dane[i]<< " ";
  44.     cout<<endl;
  45. }
  46.  
  47. void zadanie1()
  48. {
  49.     init1();
  50.     drukuj();
  51.     int index = podziel();
  52.     cout<<"tab["<<index<<"] = "<< dane[index]<<endl;
  53.     drukuj();
  54. }
  55.  
  56. //Zadanie 2
  57. struct element
  58. {
  59.     char wart;
  60.     element *next;
  61. };
  62.  
  63. element *head=NULL;
  64.  
  65. void dodaj(char c)
  66. {
  67.     element *n = new element;
  68.     n->wart = c;
  69.     if(head == NULL)
  70.         n->next = 0;
  71.     else
  72.         n->next = head;
  73.     head = n;
  74. }
  75.  
  76. void usun(char z)
  77. {
  78.     if(head == NULL)
  79.         cout<<"Lista pusta"<<endl;
  80.     else if(head->wart == z)
  81.     {
  82.         element *p = head->next;
  83.         delete head;
  84.         head = p;
  85.     }
  86.     else
  87.     {
  88.         element *p, *n;
  89.         p = head;
  90.         n = head->next;
  91.         while(n!=0 && n->wart != z)
  92.         {
  93.             p = n;
  94.             n = n->next;
  95.         }
  96.         if(n!=0)
  97.         {
  98.             p->next = n->next;
  99.             delete n;
  100.         }
  101.  
  102.     }
  103. }
  104.  
  105. void drukujL()
  106. {
  107.     element *p = head;
  108.     while(p!=0)
  109.     {
  110.         if(p->next != 0)
  111.             cout<<p->wart<<" -> ";
  112.         else
  113.             cout<<p->wart;
  114.         p = p->next;
  115.     }
  116.     cout<<endl;
  117. }
  118.  
  119. void zadanie2()
  120. {
  121.     dodaj('d');
  122.     dodaj('j');
  123.     dodaj('l');
  124.     dodaj('h');
  125.     dodaj('a');
  126.     dodaj('a');
  127.     dodaj('k');
  128.     drukujL();
  129.     usun('h');
  130.     usun('a');
  131.     usun('k');
  132.     usun('k');
  133.     usun('l');
  134.     usun('j');
  135.     usun('d');
  136.     drukujL();
  137. }
  138.  
  139. int main(){
  140.     zadanie1();
  141.     return 0;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement