No que concerne aos aspectos de linguagens de programação, a...
Uma árvore implementada por meio de encadeamento deve apresentar, além do nó pai, um encadeamento entre os nodos por meio de um campo de elo (ponteiro) e uma indicação de final de árvore por meio de um ponteiro nulo.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E (Errado)
1. Tema central da questão:
A questão aborda a implementação de árvores por encadeamento (estruturas dinâmicas de dados), conceito central em algoritmos e estruturas de dados. Entender como árvores são representadas na memória é fundamental para análise de desempenho, manipulação de informações e resolução de questões práticas em programação e concursos.
2. Resumo teórico:
Em informática, uma árvore é uma estrutura composta por “nós”, onde cada nó pode ter filhos (subnós). A implementação clássica de árvores é feita por meio de ponteiros (encadeamento), em que cada nó possui campos para acessar seus filhos, e, em algumas implementações, um campo adicional para acessar o pai (ponteiro para o pai).
O encadeamento padrão de uma árvore binária, por exemplo, inclui ponteiros para o filho à esquerda e à direita. Em árvores gerais, pode-se usar listas de filhos ou outros métodos. O ponteiro nulo indica ausência de filhos em determinada direção, mas não sinaliza o fim da árvore como um todo.
3. Justificativa da alternativa correta:
A afirmação do item está errada porque não é obrigatório existir um encadeamento entre os nós via campo de elo “próximo” (como em listas). Em árvores, o encadeamento ocorre normalmente entre pai e filhos. Além disso, não existe um “ponteiro nulo” para indicar o fim da árvore; o ponteiro nulo indica o fim de um ramo (ou seja, que um determinado filho não existe), não o fim da árvore como estrutura.
Fontes: Cormen et al., “Algoritmos: Teoria e Prática”, cap. 10, e Forouzan, “Estruturas de Dados e Algoritmos em C”.
4. Estratégias de interpretação e pegadinhas:
Desconfie de afirmações que misturam conceitos de diferentes estruturas (ex.: listas e árvores). Listas encadeadas usam campos “próximo” para ligar nós sequencialmente e têm um ponteiro nulo indicando o fim da lista. Já árvores usam ponteiros para filhos e, eventualmente, para pai, mas cada ponteiro nulo marca ausência de um filho, não o término da árvore.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O erro está em dizer que o final da árvore será indicado por meio de um ponteiro nulo. Este ponteiro vai apenas indicar que o nó é uma folha. A estrutura "árvore", diferentemente de uma lista encadeada, não precisa indicar um fim.
Força Guerreiro!!!!!!
Nem existe este conceito de Nó pai
Gabarito: Errado
Diferente do que o colega Fábio pontou, a árvore irá sim ter um ponteiro nulo nas folhas. Veja:
struct No {
int dado;
struct No* esquerda; // Ponteiro para o filho esquerdo
struct No* direita; // Ponteiro para o filho direito
};
Se ela for folha, os Nos direita e esquerda estarão nulos, então, sim o ponteiro nulo evidencia o final da árvore.
Mas veja que, diferente do que a questão a ponta, um arvore tradicional não tem uma estrutura apontando para o Nó Pai, então o "deve apresentar, além do nó pai" torna a questão errada.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo