Class: SortedList
Overview
Keeps a list of items sorted. Elements must be comparable
Instance Attribute Summary collapse
-
#list ⇒ Object
readonly
Returns the value of attribute list.
Instance Method Summary collapse
- #add(item) ⇒ Object (also: #<<)
- #contains?(item) ⇒ Boolean
- #empty? ⇒ Boolean
- #find(item) ⇒ Object
-
#initialize(initial_list = nil) ⇒ SortedList
constructor
A new instance of SortedList.
- #shift ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(initial_list = nil) ⇒ SortedList
Returns a new instance of SortedList.
6 7 8 9 10 11 12 13 |
# File 'lib/gamebox/lib/sorted_list.rb', line 6 def initialize(initial_list=nil) @list = LinkedList.new unless initial_list.nil? initial_list.each do |item| add item end end end |
Instance Attribute Details
#list ⇒ Object (readonly)
Returns the value of attribute list.
5 6 7 |
# File 'lib/gamebox/lib/sorted_list.rb', line 5 def list @list end |
Instance Method Details
#add(item) ⇒ Object Also known as: <<
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gamebox/lib/sorted_list.rb', line 15 def add(item) added = false @list.each_element do |node| if node.obj > item added = true @list.place item, :before, node break end end @list << item unless added item end |
#contains?(item) ⇒ Boolean
37 38 39 40 41 42 43 44 |
# File 'lib/gamebox/lib/sorted_list.rb', line 37 def contains?(item) @list.each do |obj| if obj == item return true end end false end |
#empty? ⇒ Boolean
33 34 35 |
# File 'lib/gamebox/lib/sorted_list.rb', line 33 def empty? @list.empty? end |
#find(item) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/gamebox/lib/sorted_list.rb', line 46 def find(item) @list.each do |obj| if obj == item return obj end end nil end |
#shift ⇒ Object
29 30 31 |
# File 'lib/gamebox/lib/sorted_list.rb', line 29 def shift @list.shift end |
#size ⇒ Object
55 56 57 |
# File 'lib/gamebox/lib/sorted_list.rb', line 55 def size @list.size end |