SHARE
TWEET

Untitled

a guest May 22nd, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #define ILOSC 30
  4.  
  5. using namespace std;
  6.  
  7. struct Drzewo
  8. {
  9.     char litera=']';
  10.     int dzieci = 0;
  11.     string tlumaczenie = "";
  12.     Drzewo *tablica[ILOSC];
  13. };
  14.  
  15. Drzewo *nowy_wezel()
  16. {
  17.     struct Drzewo *drzewo = new Drzewo;
  18.     for (int i = 0; i < ILOSC; i++)
  19.         drzewo->tablica[i] = NULL;
  20.     return drzewo;
  21. }
  22.  
  23. void wypisz(Drzewo *wezel)
  24. {
  25.     Drzewo *tmp = wezel;
  26.     if (tmp->tlumaczenie != "")
  27.         cout << tmp->tlumaczenie << endl;
  28.     for (int i = 0; i < tmp->dzieci; i++)
  29.     {
  30.         wypisz(tmp->tablica[i]);
  31.     }
  32. }
  33.  
  34. int main()
  35. {
  36.     Drzewo *drzewo = nowy_wezel();
  37.     char wybor;
  38.     string wpis, tlumaczenie;
  39.     cin >> wybor;
  40.     while (wybor != 'q')
  41.     {
  42.         switch (wybor)
  43.         {
  44.         case '+':
  45.         {
  46.             cin >> wpis;
  47.             cin >> tlumaczenie;
  48.             bool flaga = true;
  49.             Drzewo *tmp = drzewo;
  50.             for (int i = 0; i < wpis.length(); i++)
  51.             {
  52.                 flaga = true;
  53.                 for (int j = 0; j < tmp->dzieci; j++)
  54.                 {
  55.                     if (j == tmp->dzieci)
  56.                         break;
  57.                     if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera == wpis[i])
  58.                     {
  59.                         flaga = false;
  60.                         tmp->tablica[j]->litera = wpis[i];
  61.                         tmp = tmp->tablica[j];
  62.                         break;
  63.                     }
  64.                 }
  65.                 if (flaga)
  66.                 {
  67.                     tmp->tablica[tmp->dzieci] = nowy_wezel();
  68.                     tmp->tablica[tmp->dzieci]->litera = wpis[i];
  69.                     tmp->dzieci++;
  70.                     tmp = tmp->tablica[tmp->dzieci-1];
  71.                 }
  72.             }
  73.             tmp->tlumaczenie = tlumaczenie;
  74.             break;
  75.         }
  76.         case '?':
  77.         {
  78.             cin >> wpis;
  79.             Drzewo *tmp = drzewo;
  80.             bool flaga=true;
  81.             for (int i = 0; i < wpis.length(); i++)
  82.             {
  83.                 flaga = true;
  84.                 for (int j = 0; j < tmp->dzieci; j++)
  85.                 {
  86.                     if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera==wpis[i])
  87.                     {
  88.                         flaga = false;
  89.                         tmp = tmp->tablica[j];
  90.                         break;
  91.                     }
  92.                 }  
  93.                 if (flaga)
  94.                     break;
  95.             }
  96.             if (flaga || tmp->tlumaczenie=="")
  97.                 cout << "-"<<endl;
  98.             else cout << tmp->tlumaczenie << endl;
  99.             break;
  100.         }
  101.         case '*':
  102.         {
  103.             cin >> wpis;
  104.             Drzewo *tmp = drzewo;
  105.             bool flaga = true;
  106.             for (int i = 0; i < wpis.length(); i++)
  107.             {
  108.                 flaga = true;
  109.                 for (int j = 0; j < tmp->dzieci; j++)
  110.                 {
  111.                     if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera == wpis[i])
  112.                     {
  113.                         flaga = false;
  114.                         tmp = tmp->tablica[j];
  115.                         break;
  116.                     }
  117.                 }
  118.                 if (flaga)
  119.                     break;
  120.             }
  121.             if (flaga)
  122.                 cout << "-" << endl;
  123.             else
  124.                 wypisz(tmp);
  125.             break;
  126.         }
  127.         }
  128.         cin >> wybor;
  129.     }
  130.     system("pause");
  131. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top