Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #define ILOSC 30
- using namespace std;
- struct Drzewo
- {
- char litera=']';
- int dzieci = 0;
- string tlumaczenie = "";
- Drzewo *tablica[ILOSC];
- };
- Drzewo *nowy_wezel()
- {
- struct Drzewo *drzewo = new Drzewo;
- for (int i = 0; i < ILOSC; i++)
- drzewo->tablica[i] = NULL;
- return drzewo;
- }
- void wypisz(Drzewo *wezel)
- {
- Drzewo *tmp = wezel;
- if (tmp->tlumaczenie != "")
- cout << tmp->tlumaczenie << endl;
- for (int i = 0; i < tmp->dzieci; i++)
- {
- wypisz(tmp->tablica[i]);
- }
- }
- int main()
- {
- Drzewo *drzewo = nowy_wezel();
- char wybor;
- string wpis, tlumaczenie;
- cin >> wybor;
- while (wybor != 'q')
- {
- switch (wybor)
- {
- case '+':
- {
- cin >> wpis;
- cin >> tlumaczenie;
- bool flaga = true;
- Drzewo *tmp = drzewo;
- for (int i = 0; i < wpis.length(); i++)
- {
- flaga = true;
- for (int j = 0; j < tmp->dzieci; j++)
- {
- if (j == tmp->dzieci)
- break;
- if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera == wpis[i])
- {
- flaga = false;
- tmp->tablica[j]->litera = wpis[i];
- tmp = tmp->tablica[j];
- break;
- }
- }
- if (flaga)
- {
- tmp->tablica[tmp->dzieci] = nowy_wezel();
- tmp->tablica[tmp->dzieci]->litera = wpis[i];
- tmp->dzieci++;
- tmp = tmp->tablica[tmp->dzieci-1];
- }
- }
- tmp->tlumaczenie = tlumaczenie;
- break;
- }
- case '?':
- {
- cin >> wpis;
- Drzewo *tmp = drzewo;
- bool flaga=true;
- for (int i = 0; i < wpis.length(); i++)
- {
- flaga = true;
- for (int j = 0; j < tmp->dzieci; j++)
- {
- if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera==wpis[i])
- {
- flaga = false;
- tmp = tmp->tablica[j];
- break;
- }
- }
- if (flaga)
- break;
- }
- if (flaga || tmp->tlumaczenie=="")
- cout << "-"<<endl;
- else cout << tmp->tlumaczenie << endl;
- break;
- }
- case '*':
- {
- cin >> wpis;
- Drzewo *tmp = drzewo;
- bool flaga = true;
- for (int i = 0; i < wpis.length(); i++)
- {
- flaga = true;
- for (int j = 0; j < tmp->dzieci; j++)
- {
- if (tmp->tablica[j] != NULL && tmp->tablica[j]->litera == wpis[i])
- {
- flaga = false;
- tmp = tmp->tablica[j];
- break;
- }
- }
- if (flaga)
- break;
- }
- if (flaga)
- cout << "-" << endl;
- else
- wypisz(tmp);
- break;
- }
- }
- cin >> wybor;
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement