Advertisement
MaksNew

Обходы дерева

Dec 16th, 2021
1,363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. void preorderPrint(TreeNode *root)
  2. {
  3.     if (root == NULL)   // Базовый случай
  4.     {
  5.        return;
  6.     }
  7.     cout << root->data << " ";
  8.     preorderPrint(root->left);   //рекурсивный вызов левого поддерева
  9.     preorderPrint(root->right);  //рекурсивный вызов правого поддерева
  10. }
  11. // Функция печатает значения бинарного дерева поиска в прямом порядке.
  12. // Вместо печати первой инструкцией функции может быть любое действие
  13. // с данным узлом
  14.  
  15. void inorderPrint(TreeNode *root)
  16. {
  17.     if (root == NULL)   // Базовый случай
  18.     {
  19.        return;
  20.     }
  21.     preorderPrint(root->left);   //рекурсивный вызов левого поддерева
  22.     cout << root->data << " ";
  23.     preorderPrint(root->right);  //рекурсивный вызов правого поддерева
  24. }
  25. // Функция печатает значения бинарного дерева поиска в симметричном порядке.
  26. // То есть в отсортированном порядке
  27.  
  28. void postorderPrint(TreeNode *root)
  29. {
  30.     if (root == NULL)   // Базовый случай
  31.     {
  32.        return;
  33.     }
  34.     preorderPrint(root->left);   //рекурсивный вызов левого поддерева
  35.     preorderPrint(root->right);  //рекурсивный вызов правого поддерева
  36.     cout << root->data << " ";
  37. }
  38. // Функция печатает значения бинарного дерева поиска в обратном порядке.
  39. // Не путайте обратный и обратноотсортированный (обратный симметричный).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement