Ed Inteligência Artificial do Passei Direto
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.
dev-test-question-api@mail.com
há 4 meses
9Rd5CY15uplCtrICU9ABfXOMgIZEsUTa9pumiT5Fkd2RM6stajkSqb8RCdEAI4