Сохранить InOrder Traversal на дереве AVL внутри массива

Как твои дела?

Я сталкиваюсь с этой проблемой, когда у меня есть дерево AVL, и мне нужно сохранить его ключи, отсортированные внутри массива. У меня есть подпись этой функции, которую мне нужно реализовать:

bool getKeys(int value, int **keys)

Теперь я понимаю, что мне нужно передать ключи дерева InOrder Traversal, но я не понимаю, как мне сохранить их в массиве, когда я выполняю функцию inOrderTraversal. (Я хочу, чтобы это было рекурсивно, потому что это проще)

код например:

void inOrderTraversal(Node* root /*, do I need to add more params here? and what are they*/ ) {
    if (!root)
        return;
    inOrderTraversal(root->left);
    //get the key from the node and put it inside the array.
    inOrderTraversal(root->right);
}

bool getKeys(int value, int **keys) {
    int* save_keys = new int[tree->getSize()];
    // I need to save the keys from the tree inside the array save_keys
    *keys = save_keys;
    return true;
}

Вся помощь приветствуется,

Большое спасибо <3

0 ответов

Другие вопросы по тегам