Julgue o item seguinte, a respeito de estruturas em programa...

Próximas questões
Com base no mesmo assunto
Q768670 Algoritmos e Estrutura de Dados

Julgue o item seguinte, a respeito de estruturas em programação e de arquiteturas de bancos de dados.

No algoritmo denominado busca em amplitude, a árvore é percorrida visitando-se todos os nós de um ramo até se atingir os nós terminais, repetindo-se o processo em cada um dos ramos.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é Errado (E).

Vamos entender o porquê:

O enunciado da questão descreve uma técnica de busca em árvores, especificamente mencionando a busca em amplitude (também conhecida como Breadth-First Search – BFS). No entanto, a descrição fornecida no enunciado não corresponde ao funcionamento dessa técnica. Vamos abordar os conceitos-chave para esclarecer isso.

Busca em amplitude (BFS):

Na BFS, a árvore é percorrida em níveis, ou seja, a busca começa no nó raiz e explora todos os seus nós filhos antes de ir para o próximo nível de nós. Isso é geralmente implementado utilizando uma fila (queue).

Exemplo de funcionamento da BFS:

  • Primeiro, visita o nó raiz.
  • Depois, visita todos os filhos do nó raiz.
  • Em seguida, visita todos os filhos dos nós filhos, e assim por diante.

Já a descrição dada no enunciado se parece mais com a característica da busca em profundidade (DFS - Depth-First Search).

Busca em profundidade (DFS):

Na DFS, a árvore é percorrida seguindo cada ramo até atingir um nó terminal antes de voltar e explorar novos ramos. Isso é geralmente implementado utilizando uma pilha (stack), que pode ser uma pilha de chamadas recursivas (na implementação recursiva).

Exemplo de funcionamento da DFS:

  • Primeiro, visita o nó raiz.
  • Depois, segue para um dos filhos e continua a seguir até o nó terminal.
  • Ao alcançar um nó terminal, retorna e explora outros ramos.

Portanto, a descrição fornecida no enunciado ("a árvore é percorrida visitando-se todos os nós de um ramo até se atingir os nós terminais, repetindo-se o processo em cada um dos ramos") caracteriza a busca em profundidade, e não a busca em amplitude.

Assim, a alternativa correta é Errado (E), pois a descrição no enunciado não corresponde ao algoritmo de busca em amplitude (BFS), mas sim ao de busca em profundidade (DFS).

Espero que esta explicação tenha esclarecido o tema. Se precisar de mais alguma coisa, estou à disposição para ajudar!

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

Gab: E.

Busca em largura (BFS):

Um algoritmo de busca é um algoritmo que percorre um digrafo andando pelos arcos de um vértice a outro.  Um algoritmo de busca examina sistematicamente os vértices e os arcos do digrafo;  depois de examinar a ponta inicial de um arco, o algoritmo percorre o arco e examina sua ponta final.  Cada arco é examinado no máximo uma vez.

Há muitas maneiras de organizar uma busca.  Cada estratégia de busca é caracterizada pela ordem em que os vértices são examinados.   Esta página introduz abusca em largura (= breadth-first search = BFS), ou busca BFS.  Essa estratégia está intimamente relacionada com os conceitos de distância e caminho mínimo.

https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html

A busca em largura começa por um vértice, digamos s, especificado pelo usuário.  O algoritmo visita s, depois visita todos os vizinhos de s, depois todos os vértices que estão à distância 2 de s, e assim por diante.  (O conceito de distância será definido precisamente na próxima página.)  O algoritmo numera os vértices, em sequência, na ordem em que eles são descobertos.

Fonte:

https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html

 

Na teoria dos grafos, busca em largura (ou busca em amplitude, também conhecido em inglês por Breadth-First Search - BFS) é um algoritmo de busca em grafos utilizado para realizar uma busca ou travessia num grafo e estrutura de dados do tipo árvore. Intuitivamente, você começa pelo vértice raiz e explora todos os vértices vizinhos. Então, para cada um desses vértices mais próximos, exploramos os seus vértices vizinhos inexplorados e assim por diante, até que ele encontre o alvo da busca.

O erro da questão está em afirmar que repete o processo em cada um dos ramos, quando na verdade o algoritmo examina, no máximo, uma vez cada um.

Descreveram uma busca em proundidade.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo