No que concerne aos aspectos de linguagens de programação, a...

Próximas questões
Com base no mesmo assunto
Ano: 2015 Banca: CESPE / CEBRASPE Órgão: MEC Prova: CESPE - 2015 - MEC - Desenvolvedor |
Q602399 Algoritmos e Estrutura de Dados
No que concerne aos aspectos de linguagens de programação, algoritmos, estrutura de dados e case, julgue o item subsequente.

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.
Alternativas

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