для программирования я должен загрузить дерево в массив по порядку.
Сам по себе рекурсивный алгоритм для меня не проблема.Проблема, с которой я сталкиваюсь, состоит в том, чтобы периодически увеличивать номера индексов / элементов, чтобы данные переходили в правильный элемент массива, а не перезаписывали друг друга после возврата вызовов.
void foo( currentNode, data[], element? )
{
// base case
if ( currentNode == NULL )
foo( currentNode->left, data, element? );
data[ element++ ] = currentNode->data; // what do I do in between the left and right subtree calls?
foo( currentNode->right, data, element? );
}
Итак, как мне увеличитьэлемент, так что он увеличивается только до следующей точки массива для обхода inorder?
Подсказки хороши, но я не возражаю против решений.