Commit dc8a76c

mo khan <mo@mokhan.ca>
2013-10-13 03:46:06
start to implement dijkstras shortest path algorithm using a min heap.
1 parent 7d24648
Changed files (1)
spec
spec/searching/dijkstra_spec.rb
@@ -0,0 +1,23 @@
+require "spec_helper"
+require "ostruct"
+
+def dijkstra(node)
+  heap = Heap.heapify([node])
+  until (heap.empty?) do
+    top = heap.min
+    top.children.each { |x| heap.push(x) }
+  end
+end
+
+describe "dijkstra" do
+  it "should visit each item" do
+    nailah = OpenStruct.new(:name => "nini", :children => [])
+    adia = OpenStruct.new(:name => "adia", :children => [])
+    allison = OpenStruct.new(:name => "alli", :children => [adia, nailah])
+    caius = OpenStruct.new(:name => "caius", :children => [])
+    reeves = OpenStruct.new(:name => "reeves", :children => [])
+    lisa = OpenStruct.new(:name => "lisa", :children => [caius, reeves])
+    sandi = OpenStruct.new(:name => "sandi", :children => [allison, lisa])
+    dijkstra(sandi)
+  end
+end