Ключ - Значение в бинарном дереве

160
09 мая 2018, 04:06

Есть бинарное дерево.

struct Collatz {
    int key;
    unsigned int value;
};
struct Node //Звено дерева
{
    Collatz x; //То, что записываем в дерево
    Node *l, *r; //Это указатели на новые звенья
};

Бинарное дерево заполняется случайными значениями, где value - случайной значение, а key - индекс во время добавления:

for (int i = 0; i < 60000; ++i) {
        my[i].value = rand() % 100000 + 1000000;
        my[i].key = i;
        add_node(my[i], Tree);
    }

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

Как это можно реализовать?

Answer 1

Если ваше значение - порядковый номер ввода в дерева, то никаких проблем нет, если, конечно, оно реализовано верно. Для этого потребуется рекурсия

print(node *i) {
    if (i->left) 
        print(i->left);
    cout << i;
    if (i->right)
        print(i->right);
}

Как-то так.

READ ALSO
Обращение к коду в try из блока catch

Обращение к коду в try из блока catch

Можно ли из блока catch обратиться к коду из блока try, чтобы добавить в него свойства errorstatus, error

166
python скрипт для автоматического входа на сайт с jsp

python скрипт для автоматического входа на сайт с jsp

Необходимо осуществить вход на сайт с помощью скрипта без использования графических инструментов через командную строкуАдрес точки входа...

308
Диалоговое окно EnablingGroup через радиокнопки скрипт для InDesign

Диалоговое окно EnablingGroup через радиокнопки скрипт для InDesign

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

182
Пуш в массив со сдвигом вправо

Пуш в массив со сдвигом вправо

Задумка такова, что у меня должен быть массив объектов с длинной 4:

202