Алгоритмы и структуры данных на С++. Аксёнова Е.А - 45 стр.

UptoLike

4.2. Реализация алгоритмов работы с бинарными деревьями 45
Обход в прямом порядке
Попасть в корень.
Пройти левое поддерево в прямом порядке.
Пройти правое поддерево в прямом порядке.
Обход в обратном порядке
Пройти левое поддерево в обратном порядке.
Попасть в корень.
Пройти правое поддерево в обратном порядке.
Обход в концевом порядке
Пройти левое поддерево в концевом порядке.
Пройти правое поддерево в концевом порядке.
Попасть в корень.
Обходы бинарного дерева, приведенного на рисунке 4.1, будут сле-
дующими:
1) обход в прямом порядке: ABDCEGFHJ;
2) обход в обратном порядке: DBAGECHFJ;
3) обход в концевом порядке: DBGEHJFCA.
4.2. Реализация алгоритмов работы с бинарными
деревьями
Рекурсивная реализация обхода бинарного дерева
в обратном порядке
void btree1(node *t) // t - указатель на корень дерева
{
if(t! = NULL)
{
btree1 (t->llink); // обход левого поддерева
cout << t->info; // вывод информации
4.2.   Реализация алгоритмов работы с бинарными деревьями       45



   Обход в прямом порядке

   • Попасть в корень.
   • Пройти левое поддерево в прямом порядке.
   • Пройти правое поддерево в прямом порядке.

   Обход в обратном порядке

   • Пройти левое поддерево в обратном порядке.
   • Попасть в корень.
   • Пройти правое поддерево в обратном порядке.

   Обход в концевом порядке

   • Пройти левое поддерево в концевом порядке.
   • Пройти правое поддерево в концевом порядке.
   • Попасть в корень.

   Обходы бинарного дерева, приведенного на рисунке 4.1, будут сле-
дующими:

  1) обход в прямом порядке: ABDCEGFHJ;
  2) обход в обратном порядке: DBAGECHFJ;
  3) обход в концевом порядке: DBGEHJFCA.


 4.2. Реализация алгоритмов работы с бинарными
                    деревьями
       Рекурсивная реализация обхода бинарного дерева
                     в обратном порядке

void btree1(node *t) // t - указатель на корень дерева
{
  if(t! = NULL)
   {
      btree1 (t->llink); // обход левого поддерева
      cout << t->info;   // вывод информации