Class: PrefixTree

Inherits:
Object
  • Object
show all
Defined in:
lib/prefix_tree.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePrefixTree

Returns a new instance of PrefixTree.



10
11
12
13
14
# File 'lib/prefix_tree.rb', line 10

def initialize
  @root = PrefixTreeNode.new('')
  @dictionay = []
  @csv_dictionary = Csv.new
end

Instance Attribute Details

#rootObject

Returns the value of attribute root.



8
9
10
# File 'lib/prefix_tree.rb', line 8

def root
  @root
end

Instance Method Details

#add_word(word) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/prefix_tree.rb', line 16

def add_word(word)
  @dictionay << word
  letters = word.chars
  base = @root
  letters.each { |letter| base = add_letter(letter, base.next) }
puts "you added #{word} sucsesfuly"
  base.word = true
end

#delete_word(word) ⇒ Object



44
45
46
47
# File 'lib/prefix_tree.rb', line 44

def delete_word(word)
  @dictionay.delete(word)
  delete_recursively(word, 0, root)
end

#find_word(word) {|found_word| ... } ⇒ Object

Yields:

  • (found_word)


25
26
27
28
29
30
31
32
33
# File 'lib/prefix_tree.rb', line 25

def find_word(word)
  letters = word.chars
  base = @root

  found_word = letters.all? { |letter| base = find_character(letter, base.next) }
  yield found_word if block_given?

  base ? base.word : false
end

#includes?(word) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/prefix_tree.rb', line 35

def includes?(word)
  find_word(word) { |found| return found }
end

#list(prefix = nil) ⇒ Object



39
40
41
42
# File 'lib/prefix_tree.rb', line 39

def list(prefix = nil)
  prefix = '' if prefix.nil?
  listlist(prefix)
end

#read_csvObject



53
54
55
56
# File 'lib/prefix_tree.rb', line 53

def read_csv
  qwe = @csv_dictionary.read_from_csv
  qwe.each { |_, word| add_word(word.to_s) }
end

#write_csvObject



49
50
51
# File 'lib/prefix_tree.rb', line 49

def write_csv
  @csv_dictionary.save_to_csv(list)
end