Considere a implementação da função destroyTree em uma árvore binária de busca para destruir todos os nós da árvore utilizando o caminhamento pós-ordem. O código a seguir mostra a definição da classe BinarySearchTree com o método destroyTree: class BinarySearchTree { private: struct TreeNode { Aluno aluno; TreeNode* left; TreeNode* right; TreeNode(const Aluno& aluno) : aluno(aluno), left(nullptr), right(nullptr) {} }; TreeNode* root; void destroyTree(TreeNode* node) { if (node == nullptr) { return; } destroyTree(node->left); destroyTree(node->right); std::cout << "Deletando nó com RA: " << node->aluno.getRA() << std::endl; delete node; } public: BinarySearchTree() : root(nullptr) {} ~BinarySearchTree() { destroyTree(root); } }; Com relação ao funcionamento do método destroyTree, observe as afirmativas a seguir: O método destroyTree utiliza o caminhamento pré-ordem para deletar os nós da árvore. O método destroyTree é chamado recursivamente para deletar todos os nós da árvore. O método destroyTree deleta primeiro os nós das subárvores esquerda e direita antes de deletar o nó atual. O método destroyTree é invocado automaticamente pelo destrutor da classe BinarySearchTree. O método destroyTree não imprime nenhuma mensagem durante a destruição dos nós. Está correto o que se afirma em: Questão 1Resposta A. I, II e III B. I, IV e V C. II, IV e V D. II, III e IV E. III, IV e V