Объяснение кода Ruby для построения структур данных Trie
Итак, у меня есть этот код ruby, который я взял из википедии и немного изменил:
@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
Я сначала запустил это на консоли IRB, и каждый раз, когда я выводитьnode
, он просто продолжает давать мне пустой хэш каждый раз{}
, но когда я на самом деле вызвать эту функцию построить с параметром'dogs'
строка, это на самом деле работает, и выводит{"d"=>{"o"=>{"g"=>{"s"=>{}}}}}
, что совершенно правильно.
Вероятно, это скорее вопрос Ruby, чем реальный вопрос о том, как работает алгоритм. Я действительно не обладаю достаточными знаниями Ruby, чтобы понять, что там происходит.