Class: SortedList
Overview
Keeps a list of items sorted. Elements must be comparable
Instance Attribute Summary (collapse)
-
- (Object) list
readonly
Returns the value of attribute list.
Instance Method Summary (collapse)
- - (Object) add(item) (also: #<<)
- - (Boolean) contains?(item)
- - (Boolean) empty?
- - (Object) find(item)
-
- (SortedList) initialize(initial_list = nil)
constructor
A new instance of SortedList.
- - (Object) shift
- - (Object) size
Constructor Details
- (SortedList) initialize(initial_list = nil)
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
- (Object) list (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
- (Object) add(item) 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 |
- (Boolean) contains?(item)
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 |
- (Boolean) empty?
33 34 35 |
# File 'lib/gamebox/lib/sorted_list.rb', line 33 def empty? @list.empty? end |
- (Object) find(item)
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 |
- (Object) shift
29 30 31 |
# File 'lib/gamebox/lib/sorted_list.rb', line 29 def shift @list.shift end |
- (Object) size
55 56 57 |
# File 'lib/gamebox/lib/sorted_list.rb', line 55 def size @list.size end |