Прохождение бинарных деревьев
В алгоритмах обработки деревьев используется операция прохождения дерева. Под прохождением дерева понимают определенный порядок обхода всех вершин дерева. Различают несколько методов прохождения. Прямой порядок прохождения бинарного дерева можно определить следующим образом (рис. 7.12):
- попасть в корень;
- пройти в прямом порядке левое поддерево;
- пройти в прямом порядке правое поддерево.
Рис. 7.12. Прямой порядок прохождения бинарного дерева.
Прохождение бинарного дерева в обратном порядке можно определить аналогично (рис. 7.13):
- пройти в обратном порядке левое поддерево;
- пройти в обратном порядке правое поддерево;
- попасть в корень.
Определим еще один порядок прохождения бинарного дерева, называемый симметричным:
- пройти в симметричном порядке левое поддерево;
- попасть в корень;
- пройти в симметричном порядке правое поддерево.
Порядок обхода бинарного дерева можно хранить непосредственно в структуре данных. Для этого достаточно ввести дополнительное поле указателя в элементе списковой структуры и хранить в нем указатель на вершину, следующую за данной вершиной при обходе дерева.
Рис. 7.13. Обратный порядок прохождения бинарного дерева.
Представление деревьев в виде массивов также допускает хранение порядка прохождения дерева. Для этого вводится дополнительный массив, в который записываются адрес вершины в основном массиве, следующей за данной вершиной. Такие структуры данных получили название прошитых бинарных деревьев. Указатели или адреса, определяющие порядок обхода называют нитями. При этом в соответствии с порядком прохождения вершин различают право прошитые, лево прошитые и симметрично прошитые бинарные деревья (рис. 7.14).
| |||
а).
б).
Рис. 7.14. Представление симметрично прошитого бинарного дерева (а) в виде массивов (б).
Дата добавления: 2021-12-14; просмотров: 364;