Commit 30939df

mo khan <mo.khan@gmail.com>
2020-05-18 03:48:05
Reverse a stack with a queue
1 parent f768b7a
Changed files (1)
unit/1/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