diff options
Diffstat (limited to 'doc/unit/01/reverse.rb')
| -rw-r--r-- | doc/unit/01/reverse.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/unit/01/reverse.rb b/doc/unit/01/reverse.rb new file mode 100644 index 0000000..a50f062 --- /dev/null +++ b/doc/unit/01/reverse.rb @@ -0,0 +1,30 @@ +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + + gem 'minitest' +end + +require 'minitest/autorun' + +=begin +Suppose you have a Stack, s, that supports only the push(x) and pop() operations. +Show how, using only a FIFO Queue, q, you can reverse the order of all elements in s. +=end + +class Example < Minitest::Test + def test_valid + s = [] + s.push('A') + s.push('B') + s.push('C') + + q = Queue.new + 3.times { q.enq(s.pop) } + + x = 3.times.map { q.deq } + + assert x == ['C', 'B', 'A'] + end +end |
