Class: Zadt::MinMaxStack
- Inherits:
-
Object
- Object
- Zadt::MinMaxStack
- Defined in:
- lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb
Class Method Summary collapse
Instance Method Summary collapse
- #empty? ⇒ Boolean
- #help ⇒ Object
-
#initialize ⇒ MinMaxStack
constructor
A new instance of MinMaxStack.
- #length ⇒ Object
- #max ⇒ Object
- #methods ⇒ Object
- #min ⇒ Object
- #peek ⇒ Object
- #pop ⇒ Object
- #push(val) ⇒ Object
- #show ⇒ Object
Constructor Details
#initialize ⇒ MinMaxStack
Returns a new instance of MinMaxStack.
6 7 8 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 6 def initialize @values = [] end |
Class Method Details
.help ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 10 def self.help puts "Here are the functions for MinMaxStack:" puts "#push(value)" puts "#pop" puts "#peek" puts "#min" puts "#max" puts "#length" puts "#show" puts "#empty?" end |
.methods ⇒ Object
22 23 24 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 22 def self.methods self.help end |
Instance Method Details
#empty? ⇒ Boolean
70 71 72 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 70 def empty? @values.empty? end |
#help ⇒ Object
26 27 28 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 26 def help self.help end |
#length ⇒ Object
61 62 63 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 61 def length @values.length end |
#max ⇒ Object
57 58 59 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 57 def max @values.empty? ? "Empty" : @values.last[2] end |
#methods ⇒ Object
30 31 32 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 30 def methods help end |
#min ⇒ Object
53 54 55 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 53 def min @values.empty? ? "Empty" : @values.last[1] end |
#peek ⇒ Object
49 50 51 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 49 def peek @values.last[0] end |
#pop ⇒ Object
45 46 47 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 45 def pop @values.pop[0] end |
#push(val) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 34 def push(val) if @values.empty? @values.push([val, val, val]) else cur_min = @values.last[1] cur_max = @values.last[2] @values.push([val, [val, cur_min].min, [val, cur_max].max]) @values end end |
#show ⇒ Object
65 66 67 68 |
# File 'lib/zadt/AbstractDataTypes/MinMaxStackQueue/MinMaxStack.rb', line 65 def show showthis = [] @values.map{|value| value[0]} end |