# Програмний інтерфейс (API) скриптів для модуля роботи з кореневими деревами

## Структура даних «кореневе дерево»

За допомогою діалогового вікна властивостей структури даних можна отримати доступ до параметрів налаштовування, специфічних для певного модуля роботи з графами. Позначенням пункту властивості Показувати всі вказівники можна наказати програмі показати всі вказівники між вузлами дерева. Якщо пункт не буде позначено, кратні вказівники між вузлами буде спрощено до одинарних.

## Структура «кореневе дерево»

Якщо вказано об’єкт структури даних типу «кореневе дерево», ви зможете виконувати читання або запис таких властивостей:

    ShowAllPointers     // встановіть значення true, якщо слід показувати всі ребра, або false, якщо кратні ребра слід спрощувати

Якщо вказано об’єкт структури даних типу «кореневе дерево», ви зможете викликати такі функції роботи з елементами:

    node add_data(string name);         // додати вузол з вказаною назвою до дерева
    void set_root_node(node root);      // зробити root кореневим вузлом дерева
    node root_node();                   // повертає кореневий вузол дерева

## Вузли «кореневого дерева»

Якщо вказано об’єкт вузла типу «кореневе дерево», ви зможете виконувати читання або запис таких властивостей:

    int numberOfChilds                  // встановити кількість (дозволену) дочірніх вузлів цього вузла
    node left_child                     // лише читання: вузол, який є лівим дочірнім
    node right_child                    // лише читання: вузол, який є правим дочірнім
    node node_parent                    // лише читання: вузол, який є батьківським

Якщо вказано ребра структури даних типу «кореневе дерево», ви зможете викликати такі функції роботи з елементами:

    node add_left_child(node child);    // додати лівий дочірній
    node add_right_child(node child);   // додати правий дочірній
    node add_child(node child, int i);  // додати дочірній вузол як i-ий дочірній вузол вузла
    node add_node_parent(node child);   // додати батьківський вузол (буде успішним, лише якщо батьківського вузла ще не було)
    node left_child();                  // повертає правий дочірній
    node right_child();                 // повертає лівий дочірній
    node child_at(int i);               // повертає i-ий дочірній вузол вузла
    node node_parent();                 // повертає батьківський вузол вузла

## Ребра «кореневого дерева»

Якщо вказано ребра структури даних типу «кореневе дерево», доступними будуть лише властивості основної структури даних.