Структуры и алгоритмы обработки данных

       

Прохождение бинарных деревьев


В ряде алгоритмов обработки деревьев используется так называемое прохождение дерева. Под прохождением бинарного дерева понимают определенный порядок обхода всех вершин дерева. Различают несколько методов прохождения.

Прямой порядок прохождения бинарного дерева можно определить следующим образом

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

    Рис.4.6. Прямой порядок прохождения бинарного дерева

    Прохождение бинарного дерева в обратном порядке можно определить в аналогичной форме

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

    Рис.4.7. Обратный порядок прохождения бинарного дерева

    Определим еще один порядок прохождения бинарного дерева, называемый симметричным.

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

    Порядок обхода бинарного дерева можно хранить непосредственно в структуре данных. Для этого достаточно ввести дополнительное поле указателя в элементе списковой структуры и хранить в нем указатель на вершину, следующую за данной вершиной при обходе дерева.

    Представление деревьев в виде массивов также допускает хранение порядка прохождения дерева. Для этого вводится дополнительный массив, в который записываются адрес вершины в основном массиве, следующей за данной вершиной.

    Рис.4.8. Представление симметрично прошитого бинарного дерева в виде массивов

    Такие структуры данных получили название прошитых бинарных деревьев. Указатели или адреса, определяющие порядок обхода называют нитями. При этом в соответствии с порядком прохождения вершин

    различают право прошитые, лево прошитые и симметрично прошитые бинарные деревья.



    Содержание раздела