Class: DSA::Deque
Instance Method Summary collapse
- #back ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #front ⇒ Object
-
#initialize ⇒ Deque
constructor
A new instance of Deque.
- #pop_back ⇒ Object
- #pop_front ⇒ Object
- #push_back(val) ⇒ Object
- #push_front(val) ⇒ Object
- #size ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize ⇒ Deque
Returns a new instance of Deque.
3 4 5 6 |
# File 'lib/dsa-ruby/deque.rb', line 3 def initialize @deque = [] @head = 0 end |
Instance Method Details
#back ⇒ Object
33 34 35 36 |
# File 'lib/dsa-ruby/deque.rb', line 33 def back raise IndexError, "deque is empty" if empty? @deque.last end |
#each(&block) ⇒ Object
52 53 54 55 |
# File 'lib/dsa-ruby/deque.rb', line 52 def each(&block) return enum_for(:each) unless block_given? @deque.each(&block) end |
#empty? ⇒ Boolean
42 43 44 |
# File 'lib/dsa-ruby/deque.rb', line 42 def empty? @deque.empty? end |
#front ⇒ Object
28 29 30 31 |
# File 'lib/dsa-ruby/deque.rb', line 28 def front raise IndexError, "deque is empty" if empty? @deque.first end |
#pop_back ⇒ Object
23 24 25 26 |
# File 'lib/dsa-ruby/deque.rb', line 23 def pop_back raise IndexError, "deque is empty" if empty? @deque.pop end |
#pop_front ⇒ Object
18 19 20 21 |
# File 'lib/dsa-ruby/deque.rb', line 18 def pop_front raise IndexError, "deque is empty" if empty? @deque.shift end |
#push_back(val) ⇒ Object
13 14 15 16 |
# File 'lib/dsa-ruby/deque.rb', line 13 def push_back(val) @deque.push(val) self end |
#push_front(val) ⇒ Object
8 9 10 11 |
# File 'lib/dsa-ruby/deque.rb', line 8 def push_front(val) @deque.unshift(val) self end |
#size ⇒ Object
38 39 40 |
# File 'lib/dsa-ruby/deque.rb', line 38 def size @deque.size end |
#to_a ⇒ Object
46 47 48 |
# File 'lib/dsa-ruby/deque.rb', line 46 def to_a @deque.dup end |