Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement