Logo Passei Direto
Buscar

Como implementar um algoritmo de busca por profundidade em ruby

User badge image

Enviado por Gabriel Diniz Mota há 2 anos

Respostas

User badge image

Ed Inteligência Artificial do Passei Direto Verified user icon

há 2 anos

Para implementar um algoritmo de busca por profundidade em Ruby, você pode seguir os seguintes passos: 1. Defina uma classe para representar o nó do grafo. Cada nó deve ter um valor e uma lista de nós adjacentes. ```ruby class Node attr_accessor :value, :adjacent_nodes def initialize(value) @value = value @adjacent_nodes = [] end end ``` 2. Crie uma classe para representar o grafo. Essa classe deve ter um método para adicionar nós e um método para realizar a busca por profundidade. ```ruby class Graph attr_accessor :nodes def initialize @nodes = [] end def add_node(value) node = Node.new(value) @nodes << node end def depth_first_search(start_node, target_value) visited = [] stack = [start_node] while !stack.empty? current_node = stack.pop visited << current_node return current_node if current_node.value == target_value current_node.adjacent_nodes.each do |adjacent_node| stack << adjacent_node unless visited.include?(adjacent_node) end end return nil end end ``` 3. Agora você pode criar um grafo, adicionar nós e realizar a busca por profundidade. ```ruby # Criando o grafo graph = Graph.new # Adicionando nós graph.add_node("A") graph.add_node("B") graph.add_node("C") graph.add_node("D") graph.add_node("E") # Definindo as arestas graph.nodes[0].adjacent_nodes << graph.nodes[1] # A -> B graph.nodes[0].adjacent_nodes << graph.nodes[2] # A -> C graph.nodes[1].adjacent_nodes << graph.nodes[3] # B -> D graph.nodes[2].adjacent_nodes << graph.nodes[4] # C -> E # Realizando a busca por profundidade result = graph.depth_first_search(graph.nodes[0], "E") if result puts "O valor foi encontrado!" else puts "O valor não foi encontrado." end ``` Esse é um exemplo básico de como implementar um algoritmo de busca por profundidade em Ruby. Lembre-se de adaptar o código de acordo com as necessidades do seu problema.

Essa resposta te ajudou?

0
Dislike0
User badge image

dev-test-question-api@mail.com

há 4 meses

9Rd5CY15uplCtrICU9ABfXOMgIZEsUTa9pumiT5Fkd2RM6stajkSqb8RCdEAI4

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!