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

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

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

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

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

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

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

Шаг Состояние доп.ноды Состояние стека Действие на данном шаге
1 6 - Инициализация доп.ноды корнем дерева
2 4 6 доп.нода = левый ребенок 6 (4), 6 в стек
3 2 6, 4 доп.нода = левый ребенок 4 (2), 4 в стек
4 1 6, 4, 2 доп.нода = левый ребенок 2 (1), 2 в стек
5 NULL 6, 4, 2, 1 доп.нода = левый ребенок 1 (NULL), 1 в стек
6 NULL 6, 4, 2 доп.нода была NULL; процессим 1 (из стека), доп.нода = правый ребенок 1 (NULL)
7 3 6, 4 доп.нода была NULL; процессим 2 (из стека), доп.нода = правый ребенок 2 (3)
8 NULL 6, 4, 3 доп.нода = левый ребенок 3 (NULL), 3 в стек
9 NULL 6, 4 доп.нода была NULL; процессим 3 (из стека), доп.нода = правый ребенок 3 (NULL)
10 5 6 доп.нода была NULL; процессим 4 (из стека), доп.нода = правый ребенок 4 (5)
11 NULL 6, 5 доп.нода = левый ребенок 5 (NULL), 5 в стек
12 NULL 6 доп.нода была NULL; процессим 5 (из стека), доп.нода = правый ребенок 5 (NULL)
13 8 - доп.нода была NULL; процессим 6 (из стека), доп.нода = правый ребенок 6 (8)
14 7 8 доп.нода = левый ребенок 8 (7), 8 в стек
15 NULL 8, 7 доп.нода = левый ребенок 7 (NULL), 7 в стек
16 NULL 8 доп.нода была NULL; процессим 7 (из стека), доп.нода = правый ребенок 7 (NULL)
17 9 - доп.нода была NULL; процессим 8 (из стека), доп.нода = правый ребенок 8 (9)
18 NULL 9 доп.нода = левый ребенок 9 (NULL), 9 в стек
19 10 - доп.нода была NULL; процессим 9 (из стека), доп.нода = правый ребенок 9 (10)
20 NULL 10 доп.нода = левый ребенок 10 (NULL), 10 в стек
21 NULL - доп.нода была NULL; процессим 10 (из стека), доп.нода = правый ребенок 10 (NULL)
22 NULL - выход из цикла, доп.нода == NULL, стек пуст
0
0
323

Еще по теме

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