Вставка порядка уровней в двоичное дерево?

Предположим, нам дан вывод обхода порядка уровней. Как построить двоичное дерево из того, что заполнено данными в правильных позициях?

Обратите внимание, что я не пытаюсь нарисовать дерево из заданных выходных данных обхода, а считываю данные обхода из массива, а затем заполняю двоичный дерево с ним путем фактического кодирования в 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;

Теперь я пытаюсь прочитать [] значения и код это дерево так, чтобы оно выглядело как на схеме. Существует множество примеров обхода уровня , но не удалось найти ничего значимого для фактического кодирования для построения двоичного дерева . Это своего рода «обратный обход».

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

8
задан AruniRC 2 July 2011 в 07:24
поделиться