Advertisement
amsavchenko

Untitled

May 16th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. cout << "Выбран режим работы со строками " << endl;
  2. cout << "Доступны следующие функции " << endl;
  3. cout << " 1 - map\n 2 - where\n 3 - слияние\n 4 - извлечение поддерева по заданному элементу\n 5 - поиск на вхождение поддерева\n 6 - поиск элемента на вхождение " << endl;
  4. char string_mode_choise;
  5. do { cin >> string_mode_choise; } while (string_mode_choise != '1' && string_mode_choise != '2' && string_mode_choise != '3' && string_mode_choise != '4' && string_mode_choise != '5' && string_mode_choise != '6');
  6. switch (string_mode_choise) {
  7. case '1': { // map
  8. cout << "Функция map преобразует все элементы дерева в строку, введенную пользователем\n\n";
  9. tree<string> *string_tree = new tree<string>;
  10. string_tree->set_tree();
  11. cout << "Введите строку для преобразований: " << endl;
  12. string for_map; cin >> for_map;
  13. string_tree->map(for_map);
  14. string_tree->print_by_levels();
  15. break;
  16. }
  17. case '2': { // where
  18. cout << "Функция where вернёт дерево, состоящее из строк исходного, длина которых меньше 5\n\n";
  19. tree<string> *string_tree = new tree<string>;
  20. tree<string> *res_string_tree = new tree<string>;
  21. string_tree->set_tree();
  22. string_tree->where(res_string_tree);
  23. res_string_tree->rootRightLeft_print();
  24. res_string_tree->leftRootRight_print();
  25. res_string_tree->print_by_levels();
  26. break;
  27.  
  28. }
  29. case '3': { // слияние
  30. cout << "Первое дерево для слияния:" << endl;
  31. tree<string> *first_string_tree = new tree<string>;
  32. first_string_tree->set_tree();
  33. cout << "Второе дерево для слияния:" << endl;
  34. tree<string> *second_string_tree = new tree<string>;
  35. second_string_tree->set_tree();
  36. second_string_tree->merge_trees(first_string_tree);
  37. cout << "Результат: " << endl;
  38. first_string_tree->rootRightLeft_print();
  39. first_string_tree->leftRootRight_print();
  40. first_string_tree->print_by_levels();
  41. break;
  42. }
  43. case '4': { // извлечение поддерева
  44. tree<string> *string_tree = new tree<string>;
  45. tree<string> *res_string_tree = new tree<string>;
  46. string_tree->set_tree();
  47. cout << "Введите строку: ";
  48. string str; cin >> str;
  49. string_tree->subtree_extraction(str, res_string_tree);
  50. cout << "Результат извлечения поддерева по заданному элементу: " << endl;
  51. res_string_tree->rootRightLeft_print();
  52. res_string_tree->leftRootRight_print();
  53. res_string_tree->print_by_levels();
  54. break;
  55. }
  56. case '5': { // поиск на вхождение поддерева
  57. tree<string> *string_tree = new tree<string>;
  58. cout << "Введите дерево " << endl;
  59. string_tree->set_tree();
  60. tree<string> *string_subtree = new tree<string>;
  61. cout << "Введите поддерево " << endl;
  62. string_subtree->set_tree();
  63. if (string_tree->if_tree_contain(string_subtree)) cout << "Поддерево содержится в дереве" << endl;
  64. else cout << "Поддерево не найдено в дереве" << endl;
  65. break;
  66. }
  67. case '6': { // поиск на вхождение элемента
  68. tree<string> *string_tree = new tree<string>;
  69. string_tree->set_tree();
  70. cout << "Введите строку, для которой надо проверить, содержится ли она в дереве: ";
  71. string str; cin >> str;
  72. if (string_tree->if_element_contain(str)) cout << "Строка содержится в дереве" << endl;
  73. else cout << "Строка не найдена в дереве" << endl;
  74. break;
  75. }
  76. break;
  77. }
  78. break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement