Explicação do código Ruby para construir estruturas de dados Trie
Então, eu tenho esse código ruby que peguei na wikipedia e modifiquei um pouco:
@trie = Hash.new()
def build(str)
node = @trie
str.each_char { |ch|
cur = ch
prev_node = node
node = node[cur]
if node == nil
prev_node[cur] = Hash.new()
node = prev_node[cur]
end
}
end
build('dogs')
puts @trie.inspect
Executei isso pela primeira vez no console irb e cada vez que saínode
, ele continua me dando um hash vazio toda vez{}
, mas quando eu realmente invoco essa função build com o parâmetro'dogs'
string, ele realmente funciona e gera{"d"=>{"o"=>{"g"=>{"s"=>{}}}}}
, o que é totalmente corret
Essa é provavelmente mais uma questão de Ruby do que a pergunta real sobre como o algoritmo funciona. Eu realmente não tenho conhecimento suficiente de Ruby para decifrar o que está acontecendo lá, eu ach