Предположим, нам дан вывод обхода порядка уровней. Как построить двоичное дерево из того, что заполнено данными в правильных позициях?
Обратите внимание, что я не пытаюсь нарисовать дерево из заданных выходных данных обхода, а считываю данные обхода из массива, а затем заполняю двоичный дерево с ним путем фактического кодирования в C.
Например:
Пусть a [] = {A, B, C, D, E, F, G}; // вывод обхода в массиве
Итак, дерево порядка уровней будет выглядеть так:
A
/ \
B C
/ \ / \
D E F G
Предположим, что есть структура узла дерева вроде такой:
typedef struct node
{
char data;
struct node* left;
struct node* right;
}tree;
Теперь я пытаюсь прочитать [] значения и код это дерево так, чтобы оно выглядело как на схеме. Существует множество примеров обхода уровня , но не удалось найти ничего значимого для фактического кодирования для построения двоичного дерева . Это своего рода «обратный обход».
Также обратите внимание, что это не домашнее задание, хотя у меня нет проблем с его пометкой, если больше людей это заметят. :)