Geral
Estruturas de Dados
Semana 5
0

Questão

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:

  1. O método destroyTree utiliza o caminhamento pré-ordem para deletar os nós da árvore.
  2. O método destroyTree é chamado recursivamente para deletar todos os nós da árvore.
  3. O método destroyTree deleta primeiro os nós das subárvores esquerda e direita antes de deletar o nó atual.
  4. O método destroyTree é invocado automaticamente pelo destrutor da classe BinarySearchTree.
  5. O método destroyTree não imprime nenhuma mensagem durante a destruição dos nós.


Está correto o que se afirma em:
A) II, IV e V
B) I, II e III
C) II, III e IV
D) I, IV e V
E) III, IV e V
function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/1571/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': '6hglU5JUgUR0Dec1oMIQTJh8qI87VYFKFdhYqOV6lk4VCm8qXzRILaGOHxD8UoXY' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }