summaryrefslogtreecommitdiff
path: root/doc/unit/01/reverse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'doc/unit/01/reverse.rb')
-rw-r--r--doc/unit/01/reverse.rb30
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