Перейти к содержимому
Обложка сообщества Разное

Postorder traversal: подробный пример работы алгоритма

Основной пост.

Код алгоритма:
https://gist.github.com/codekrolik/916286dac0524caee4f6

Тесты:
https://gist.github.com/codekrolik/ab806962e7e381c41cbf

В данном дереве ноды пронумерованы в соответствие с порядком обхода (postorder).

Ниже шаги алгоритма, а также состояние стека и действия на каждом шаге.

ШагСостояние стекаДействия на данном шаге
110, 9, 5инициализация - корень (10) и его дети (9, 5)
210, 9, 5, 4, 3берем 5, передобавляем 5 и его детей (4, 3)
310, 9, 5, 4, 3, 2, 1берем 3, передобавляем 3 и его детей (2, 1)
310, 9, 5, 4, 3, 2процессим 1 - лист дерева
410, 9, 5, 4, 3процессим 2 - лист дерева
510, 9, 5, 4процессим 3 - родитель 2
610, 9, 5процессим 4 - лист дерева
710, 9процессим 5 - родитель 4
810, 9, 8, 6берем 9, передобавляем 9 и его детей (6, 8)
910, 9, 8процессим 6 - лист дерева
1010, 9, 8, 7берем 8, передобавляем 8 и его детей (7)
1110, 9, 8процессим 7 - лист дерева
1210, 9процессим 8 - родитель 7
1310процессим 9 - родитель 8
14-процессим 10 - родитель 9
15выход из цикла, стек пуст
0
0
469

Еще по теме

Postorder traversal: подробный пример работы алгоритма - Yvision.kz