ds 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +13 -0
  4. data/doc/Array.html +264 -0
  5. data/doc/DS.html +292 -0
  6. data/doc/DS/Array2D.html +345 -0
  7. data/doc/DS/BinaryHeap.html +493 -0
  8. data/doc/DS/BinarySearchTree.html +313 -0
  9. data/doc/DS/BinaryTree.html +433 -0
  10. data/doc/DS/CompleteBinaryTree.html +550 -0
  11. data/doc/DS/CyclicList.html +234 -0
  12. data/doc/DS/Digraph.html +299 -0
  13. data/doc/DS/Edge.html +283 -0
  14. data/doc/DS/ExpandableArray.html +316 -0
  15. data/doc/DS/Graph.html +739 -0
  16. data/doc/DS/GraphAsList.html +361 -0
  17. data/doc/DS/GraphAsMatrix.html +633 -0
  18. data/doc/DS/GraphAsTriMatrix.html +274 -0
  19. data/doc/DS/List.html +1263 -0
  20. data/doc/DS/ListElement.html +344 -0
  21. data/doc/DS/Queue.html +517 -0
  22. data/doc/DS/Ring.html +323 -0
  23. data/doc/DS/Stack.html +407 -0
  24. data/doc/DS/Tree.html +770 -0
  25. data/doc/DS/TreeWalker.html +561 -0
  26. data/doc/DS/TriMatrix.html +338 -0
  27. data/doc/created.rid +25 -0
  28. data/doc/ds/graphs/digraph_rb.html +52 -0
  29. data/doc/ds/graphs/edge_rb.html +52 -0
  30. data/doc/ds/graphs/graph_as_list_rb.html +52 -0
  31. data/doc/ds/graphs/graph_as_matrix_rb.html +52 -0
  32. data/doc/ds/graphs/graph_as_tri_matrix_rb.html +52 -0
  33. data/doc/ds/graphs/graph_rb.html +52 -0
  34. data/doc/ds/lists/cyclic_list_rb.html +52 -0
  35. data/doc/ds/lists/list_element_rb.html +52 -0
  36. data/doc/ds/lists/list_rb.html +52 -0
  37. data/doc/ds/lists/ring_rb.html +52 -0
  38. data/doc/ds/matrixes/array_2d_rb.html +52 -0
  39. data/doc/ds/matrixes/expandable_array_rb.html +52 -0
  40. data/doc/ds/matrixes/tri_matrix_rb.html +52 -0
  41. data/doc/ds/queues/queue_rb.html +52 -0
  42. data/doc/ds/stacks/stack_rb.html +52 -0
  43. data/doc/ds/trees/binary_heap_rb.html +52 -0
  44. data/doc/ds/trees/binary_search_tree_rb.html +52 -0
  45. data/doc/ds/trees/binary_tree_rb.html +52 -0
  46. data/doc/ds/trees/complete_binary_tree_rb.html +52 -0
  47. data/doc/ds/trees/tree_rb.html +52 -0
  48. data/doc/ds/trees/tree_walker_rb.html +52 -0
  49. data/doc/ds/version_rb.html +52 -0
  50. data/doc/ds_rb.html +98 -0
  51. data/doc/ext/ext_rb.html +52 -0
  52. data/doc/images/brick.png +0 -0
  53. data/doc/images/brick_link.png +0 -0
  54. data/doc/images/bug.png +0 -0
  55. data/doc/images/bullet_black.png +0 -0
  56. data/doc/images/bullet_toggle_minus.png +0 -0
  57. data/doc/images/bullet_toggle_plus.png +0 -0
  58. data/doc/images/date.png +0 -0
  59. data/doc/images/find.png +0 -0
  60. data/doc/images/loadingAnimation.gif +0 -0
  61. data/doc/images/macFFBgHack.png +0 -0
  62. data/doc/images/package.png +0 -0
  63. data/doc/images/page_green.png +0 -0
  64. data/doc/images/page_white_text.png +0 -0
  65. data/doc/images/page_white_width.png +0 -0
  66. data/doc/images/plugin.png +0 -0
  67. data/doc/images/ruby.png +0 -0
  68. data/doc/images/tag_green.png +0 -0
  69. data/doc/images/wrench.png +0 -0
  70. data/doc/images/wrench_orange.png +0 -0
  71. data/doc/images/zoom.png +0 -0
  72. data/doc/index.html +375 -0
  73. data/doc/js/darkfish.js +116 -0
  74. data/doc/js/jquery.js +32 -0
  75. data/doc/js/quicksearch.js +114 -0
  76. data/doc/js/thickbox-compressed.js +10 -0
  77. data/doc/rdoc.css +763 -0
  78. data/ds.gemspec +20 -0
  79. data/lib/ds.rb +38 -0
  80. data/lib/ds/graphs/digraph.rb +20 -0
  81. data/lib/ds/graphs/edge.rb +15 -0
  82. data/lib/ds/graphs/graph.rb +107 -0
  83. data/lib/ds/graphs/graph_as_list.rb +48 -0
  84. data/lib/ds/graphs/graph_as_matrix.rb +114 -0
  85. data/lib/ds/graphs/graph_as_tri_matrix.rb +25 -0
  86. data/lib/ds/lists/cyclic_list.rb +21 -0
  87. data/lib/ds/lists/list.rb +303 -0
  88. data/lib/ds/lists/list_element.rb +26 -0
  89. data/lib/ds/lists/ring.rb +42 -0
  90. data/lib/ds/matrixes/array_2d.rb +35 -0
  91. data/lib/ds/matrixes/expandable_array.rb +37 -0
  92. data/lib/ds/matrixes/tri_matrix.rb +30 -0
  93. data/lib/ds/queues/queue.rb +53 -0
  94. data/lib/ds/stacks/stack.rb +39 -0
  95. data/lib/ds/trees/binary_heap.rb +71 -0
  96. data/lib/ds/trees/binary_search_tree.rb +32 -0
  97. data/lib/ds/trees/binary_tree.rb +65 -0
  98. data/lib/ds/trees/complete_binary_tree.rb +52 -0
  99. data/lib/ds/trees/tree.rb +117 -0
  100. data/lib/ds/trees/tree_walker.rb +179 -0
  101. data/lib/ds/version.rb +3 -0
  102. data/lib/ext/ext.rb +15 -0
  103. data/test/help.rb +8 -0
  104. data/test/test_array2d.rb +51 -0
  105. data/test/test_binary_heap.rb +35 -0
  106. data/test/test_binary_search_tree.rb +32 -0
  107. data/test/test_binary_tree.rb +51 -0
  108. data/test/test_complete_binary_tree.rb +30 -0
  109. data/test/test_digraph.rb +134 -0
  110. data/test/test_expandable_array.rb +26 -0
  111. data/test/test_graph.rb +71 -0
  112. data/test/test_list.rb +138 -0
  113. data/test/test_list_element.rb +56 -0
  114. data/test/test_queue.rb +110 -0
  115. data/test/test_ring.rb +28 -0
  116. data/test/test_stack.rb +87 -0
  117. data/test/test_tree.rb +48 -0
  118. data/test/test_tree_walker.rb +69 -0
  119. data/test/test_tri_matrix.rb +22 -0
  120. metadata +184 -0
@@ -0,0 +1,56 @@
1
+ require 'help'
2
+
3
+ describe "List Element" do
4
+
5
+ before do
6
+ @empty_el = ListElement.new
7
+ @el = ListElement.new(1)
8
+ end
9
+
10
+ describe "not initialized" do
11
+
12
+ before do
13
+ @empty_el = ListElement.new
14
+ end
15
+
16
+ it "should have no elements." do
17
+ @empty_el.data.must_be_nil
18
+ end
19
+
20
+ it "should be tail." do
21
+ assert @empty_el.tail?
22
+ end
23
+
24
+ it "#append should link element with another." do
25
+ @empty_el.append(2).must_be_instance_of ListElement
26
+ @empty_el.next.wont_be_nil
27
+ @empty_el.next.must_be_instance_of ListElement
28
+ @empty_el.next.data.must_equal 2
29
+ end
30
+ end
31
+
32
+
33
+ describe "initialized" do
34
+
35
+ before do
36
+ @el = ListElement.new(1)
37
+ end
38
+
39
+ it "should have one element" do
40
+ @el.data.must_equal 1
41
+ end
42
+
43
+ it "should be tail." do
44
+ assert @el.tail?
45
+ end
46
+
47
+ it "#append should link element with another." do
48
+ @el.append(2).must_be_instance_of ListElement
49
+ @el.next.wont_be_nil
50
+ @el.next.must_be_instance_of ListElement
51
+ @el.next.data.must_equal 2
52
+ end
53
+
54
+ end
55
+
56
+ end
@@ -0,0 +1,110 @@
1
+ require 'help'
2
+
3
+ describe Queue do
4
+
5
+ describe "Empty Queue" do
6
+
7
+ before do
8
+ @empty_queue = Queue.new
9
+ end
10
+
11
+ it "should be empty." do
12
+ assert @empty_queue.empty?
13
+ end
14
+
15
+ it "should have zero elements." do
16
+ @empty_queue.length.must_equal 0
17
+ end
18
+ end
19
+
20
+
21
+ describe "Not empty queue" do
22
+
23
+ before do
24
+ @queue = Queue.new
25
+ @queue.enqueue 1
26
+ @queue.enqueue 2
27
+
28
+ @queue2 = Queue.create
29
+ @queue2.enqueue 1
30
+ @queue2.enqueue 2
31
+ end
32
+
33
+ it "should not be empty." do
34
+ refute @queue.empty?
35
+ @queue.length.must_equal 2
36
+
37
+ refute @queue2.empty?
38
+ @queue2.length.must_equal 2
39
+ end
40
+
41
+ it "#peek should return element from forehead of queue." do
42
+ @queue.peek.must_equal 1
43
+ @queue2.peek.must_equal 1
44
+ end
45
+
46
+
47
+ it "#enqueue and #push should add element to queue." do
48
+ @queue.enqueue 3
49
+ @queue.length.must_equal 3
50
+
51
+ @queue.push 3
52
+ @queue.length.must_equal 4
53
+
54
+ @queue2.enqueue 3
55
+ @queue2.length.must_equal 3
56
+
57
+ @queue2.push 3
58
+ @queue2.length.must_equal 4
59
+ end
60
+
61
+ it "#dequeue and #shift should remove element from queue." do
62
+ x = @queue.dequeue
63
+ @queue.length.must_equal 1
64
+ x.must_equal 1
65
+
66
+ x = @queue2.dequeue
67
+ @queue2.length.must_equal 1
68
+ x.must_equal 1
69
+ end
70
+
71
+
72
+ if ENV['BENCH']
73
+ describe "performance" do
74
+
75
+ before do
76
+ 100000.times do |n|
77
+ @queue.push 4
78
+ @queue2.push 4
79
+ end
80
+ end
81
+
82
+
83
+ bench_performance_constant "#shift(array implementation) should be const operation.", 0.999 do |n|
84
+ n.times do
85
+ @queue.shift
86
+ end
87
+ end
88
+
89
+ bench_performance_constant "#shift(list implementation) should be const operation.", 0.999 do |n|
90
+ n.times do
91
+ @queue2.shift
92
+ end
93
+ end
94
+
95
+ bench_performance_constant "#push(array implementation) should be const operation.", 0.999 do |n|
96
+ n.times do
97
+ @queue.push 2
98
+ end
99
+ end
100
+
101
+ bench_performance_constant "#push(list implementation) should be const operation.", 0.999 do |n|
102
+ n.times do
103
+ @queue2.push 2
104
+ end
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,28 @@
1
+ require 'help'
2
+
3
+ describe "Cyclic List" do
4
+
5
+ before do
6
+ @ring = Ring.from_array([1,2,3,4,5,6,7])
7
+ end
8
+
9
+ it "#from_array should create ring from array." do
10
+ @ring.must_be_kind_of List
11
+ @ring.must_be_instance_of Ring
12
+ @ring.length.must_equal 7
13
+ end
14
+
15
+ it "should be looped." do
16
+ assert @ring.looped?
17
+ end
18
+
19
+ it "should has cycle." do
20
+ @ring.cycle_size.must_equal 7
21
+ end
22
+
23
+ it "#eliminate_by should remove elements by given offset until there is one element." do
24
+ @ring.eliminate_by(3).must_equal 4
25
+ @ring.eliminate_by(2).must_equal 1
26
+ end
27
+ end
28
+
@@ -0,0 +1,87 @@
1
+ require 'help'
2
+
3
+ describe Stack do
4
+
5
+ before do
6
+ @stack = Stack.new
7
+ @stack.push :first
8
+ @stack.push :second
9
+ end
10
+
11
+ describe "Empty stack" do
12
+
13
+ before do
14
+ @empty_stack = Stack.new
15
+ end
16
+
17
+ it "should be empty." do
18
+ assert @empty_stack.empty?
19
+ @empty_stack.size.must_equal 0
20
+ end
21
+
22
+ it "#pop should retrun nil." do
23
+ @empty_stack.pop.must_be_nil
24
+ end
25
+
26
+ it "#peek should return nil." do
27
+ @empty_stack.peek.must_be_nil
28
+ end
29
+
30
+ it "#push should change stack size." do
31
+ @empty_stack.push :first
32
+ refute @empty_stack.empty?
33
+ @empty_stack.size.must_equal 1
34
+ end
35
+ end
36
+
37
+
38
+ describe "Not empty stack" do
39
+
40
+ it "should not be empty." do
41
+ refute @stack.empty?
42
+ end
43
+
44
+ it "#peek should return element from the top of the stack." do
45
+ @stack.peek.must_equal :second
46
+ end
47
+
48
+ it "#pop should remove element form the top of the stack." do
49
+ @stack.pop
50
+ @stack.size.must_equal 1
51
+ @stack.peek.must_equal :first
52
+ end
53
+
54
+ it "#push should insert element to the top of the stack." do
55
+ @stack.push(:third)
56
+ @stack.peek.must_equal :third
57
+ @stack.size.must_equal 3
58
+ end
59
+
60
+ if ENV['BENCH']
61
+ describe "performance" do
62
+
63
+ before do
64
+ 100000.times do |n|
65
+ @stack.push 4
66
+ end
67
+ end
68
+
69
+
70
+ bench_performance_constant "#pop should be const operation.", 0.999 do |n|
71
+ n.times do
72
+ @stack.pop
73
+ end
74
+ end
75
+
76
+ bench_performance_constant "#push should be const operation.", 0.999 do |n|
77
+ n.times do
78
+ @stack.push 3
79
+ end
80
+ end
81
+
82
+ end
83
+ end
84
+
85
+ end
86
+ end
87
+
@@ -0,0 +1,48 @@
1
+ require 'help'
2
+
3
+ describe Tree do
4
+
5
+ before do
6
+ t = Tree.new(2)
7
+ c1 = t << 5
8
+ c2 = t << 8
9
+ t << 9
10
+
11
+ c1 << 4
12
+ c1 << 10
13
+ c2 << 3
14
+
15
+ @tree = t
16
+ end
17
+
18
+ it "#to_a should return tree converted to array." do
19
+ @tree.to_a.must_equal [2,5,8,9,4,10,3]
20
+ end
21
+
22
+ it "#height should return tree height." do
23
+ @tree.height.must_equal 3
24
+ end
25
+
26
+ it "#width should return tree width." do
27
+ @tree.width.must_equal 3
28
+ end
29
+
30
+ it "#leaf_count should return number of tree leaves." do
31
+ @tree.leaf_count.must_equal 4
32
+ end
33
+
34
+ it "#get_leaves should return list of tree leaves." do
35
+ @tree.get_leaves.to_a.collect{ |e| e.data }.must_equal [4,10,3,9]
36
+ end
37
+
38
+ it "#lowest_height should return node which lies closest to the root." do
39
+ @tree.lowest_height.must_equal 9
40
+ end
41
+
42
+ it "#mirror! should mirror tree." do
43
+ @tree.mirror!
44
+ @tree.to_a.must_equal [2,9,8,5,3,10,4]
45
+ end
46
+
47
+ end
48
+
@@ -0,0 +1,69 @@
1
+ require "help"
2
+
3
+ describe TreeWalker do
4
+
5
+ describe "traversing Tree" do
6
+
7
+ before do
8
+
9
+ t = Tree.new(2)
10
+ c1 = t << 5
11
+ c2 = t << 8
12
+ t << 9
13
+
14
+ c1 << 4
15
+ c1 << 10
16
+ c2 << 3
17
+
18
+ @tree = t
19
+
20
+ @walker = TreeWalker.new(@tree)
21
+ end
22
+
23
+
24
+ it "#traverse without arguments should traverse tree in BFS order." do
25
+ @walker.traverse.must_equal [2,5,8,9,4,10,3]
26
+ end
27
+
28
+ it "should traverse in BFS order." do
29
+ @walker.traverse(:bfs).must_equal [2,5,8,9,4,10,3]
30
+ end
31
+
32
+ it "#summarize should transform tree." do
33
+ @walker.summarize(:topdown).to_a.must_equal [2,7,10,11,11,17,13]
34
+ end
35
+ end
36
+
37
+ describe "traversing Binary Tree" do
38
+
39
+ before do
40
+ @bin_tree = BinaryTree.new
41
+ [2,5,8,9,11,12,14].each{|x| @bin_tree.insert(x)}
42
+ @bin_walker = TreeWalker.new(@bin_tree)
43
+ end
44
+
45
+ it "#traverse without arguments should traverse tree in BFS order." do
46
+ @bin_walker.traverse.must_equal [2,5,8,9,11,12,14]
47
+ end
48
+
49
+ it "should traverse in BFS order." do
50
+ @bin_walker.traverse(:bfs).must_equal [2,5,8,9,11,12,14]
51
+ end
52
+
53
+ it "should traverse in postorder." do
54
+ @bin_walker.traverse(:postorder).must_equal [9,11,5,12,14,8,2]
55
+ end
56
+
57
+ it "should traverse in inorder." do
58
+ @bin_walker.traverse(:inorder).must_equal [9,5,11,2,12,8,14]
59
+ end
60
+
61
+ it "#summarize should transform tree." do
62
+ @bin_walker.summarize(:bottomup).to_a.must_equal [61,25,34,9,11,12,14]
63
+ end
64
+
65
+ end
66
+ end
67
+
68
+
69
+
@@ -0,0 +1,22 @@
1
+ require 'help'
2
+
3
+ describe TriMatrix do
4
+
5
+ before do
6
+ @tri_matrix = TriMatrix.new
7
+ @tri_matrix[0,1] = true
8
+ @tri_matrix[0,2] = true
9
+ end
10
+
11
+
12
+ it "[x,y] should be same as [y,x]" do
13
+ @tri_matrix[0,1].must_be_same_as @tri_matrix[1,0]
14
+ end
15
+
16
+ it "should store elements in array" do
17
+ @tri_matrix.to_a.must_equal [0,true,0,true]
18
+ end
19
+
20
+ end
21
+
22
+
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ds
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - knife
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-09-07 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description: Data structures (lists,stacks, trees, heaps, graphs..) in pure Ruby.
22
+ email:
23
+ - satre@o2.pl
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - .gitignore
32
+ - Gemfile
33
+ - Rakefile
34
+ - doc/Array.html
35
+ - doc/DS.html
36
+ - doc/DS/Array2D.html
37
+ - doc/DS/BinaryHeap.html
38
+ - doc/DS/BinarySearchTree.html
39
+ - doc/DS/BinaryTree.html
40
+ - doc/DS/CompleteBinaryTree.html
41
+ - doc/DS/CyclicList.html
42
+ - doc/DS/Digraph.html
43
+ - doc/DS/Edge.html
44
+ - doc/DS/ExpandableArray.html
45
+ - doc/DS/Graph.html
46
+ - doc/DS/GraphAsList.html
47
+ - doc/DS/GraphAsMatrix.html
48
+ - doc/DS/GraphAsTriMatrix.html
49
+ - doc/DS/List.html
50
+ - doc/DS/ListElement.html
51
+ - doc/DS/Queue.html
52
+ - doc/DS/Ring.html
53
+ - doc/DS/Stack.html
54
+ - doc/DS/Tree.html
55
+ - doc/DS/TreeWalker.html
56
+ - doc/DS/TriMatrix.html
57
+ - doc/created.rid
58
+ - doc/ds/graphs/digraph_rb.html
59
+ - doc/ds/graphs/edge_rb.html
60
+ - doc/ds/graphs/graph_as_list_rb.html
61
+ - doc/ds/graphs/graph_as_matrix_rb.html
62
+ - doc/ds/graphs/graph_as_tri_matrix_rb.html
63
+ - doc/ds/graphs/graph_rb.html
64
+ - doc/ds/lists/cyclic_list_rb.html
65
+ - doc/ds/lists/list_element_rb.html
66
+ - doc/ds/lists/list_rb.html
67
+ - doc/ds/lists/ring_rb.html
68
+ - doc/ds/matrixes/array_2d_rb.html
69
+ - doc/ds/matrixes/expandable_array_rb.html
70
+ - doc/ds/matrixes/tri_matrix_rb.html
71
+ - doc/ds/queues/queue_rb.html
72
+ - doc/ds/stacks/stack_rb.html
73
+ - doc/ds/trees/binary_heap_rb.html
74
+ - doc/ds/trees/binary_search_tree_rb.html
75
+ - doc/ds/trees/binary_tree_rb.html
76
+ - doc/ds/trees/complete_binary_tree_rb.html
77
+ - doc/ds/trees/tree_rb.html
78
+ - doc/ds/trees/tree_walker_rb.html
79
+ - doc/ds/version_rb.html
80
+ - doc/ds_rb.html
81
+ - doc/ext/ext_rb.html
82
+ - doc/images/brick.png
83
+ - doc/images/brick_link.png
84
+ - doc/images/bug.png
85
+ - doc/images/bullet_black.png
86
+ - doc/images/bullet_toggle_minus.png
87
+ - doc/images/bullet_toggle_plus.png
88
+ - doc/images/date.png
89
+ - doc/images/find.png
90
+ - doc/images/loadingAnimation.gif
91
+ - doc/images/macFFBgHack.png
92
+ - doc/images/package.png
93
+ - doc/images/page_green.png
94
+ - doc/images/page_white_text.png
95
+ - doc/images/page_white_width.png
96
+ - doc/images/plugin.png
97
+ - doc/images/ruby.png
98
+ - doc/images/tag_green.png
99
+ - doc/images/wrench.png
100
+ - doc/images/wrench_orange.png
101
+ - doc/images/zoom.png
102
+ - doc/index.html
103
+ - doc/js/darkfish.js
104
+ - doc/js/jquery.js
105
+ - doc/js/quicksearch.js
106
+ - doc/js/thickbox-compressed.js
107
+ - doc/rdoc.css
108
+ - ds.gemspec
109
+ - lib/ds.rb
110
+ - lib/ds/graphs/digraph.rb
111
+ - lib/ds/graphs/edge.rb
112
+ - lib/ds/graphs/graph.rb
113
+ - lib/ds/graphs/graph_as_list.rb
114
+ - lib/ds/graphs/graph_as_matrix.rb
115
+ - lib/ds/graphs/graph_as_tri_matrix.rb
116
+ - lib/ds/lists/cyclic_list.rb
117
+ - lib/ds/lists/list.rb
118
+ - lib/ds/lists/list_element.rb
119
+ - lib/ds/lists/ring.rb
120
+ - lib/ds/matrixes/array_2d.rb
121
+ - lib/ds/matrixes/expandable_array.rb
122
+ - lib/ds/matrixes/tri_matrix.rb
123
+ - lib/ds/queues/queue.rb
124
+ - lib/ds/stacks/stack.rb
125
+ - lib/ds/trees/binary_heap.rb
126
+ - lib/ds/trees/binary_search_tree.rb
127
+ - lib/ds/trees/binary_tree.rb
128
+ - lib/ds/trees/complete_binary_tree.rb
129
+ - lib/ds/trees/tree.rb
130
+ - lib/ds/trees/tree_walker.rb
131
+ - lib/ds/version.rb
132
+ - lib/ext/ext.rb
133
+ - test/help.rb
134
+ - test/test_array2d.rb
135
+ - test/test_binary_heap.rb
136
+ - test/test_binary_search_tree.rb
137
+ - test/test_binary_tree.rb
138
+ - test/test_complete_binary_tree.rb
139
+ - test/test_digraph.rb
140
+ - test/test_expandable_array.rb
141
+ - test/test_graph.rb
142
+ - test/test_list.rb
143
+ - test/test_list_element.rb
144
+ - test/test_queue.rb
145
+ - test/test_ring.rb
146
+ - test/test_stack.rb
147
+ - test/test_tree.rb
148
+ - test/test_tree_walker.rb
149
+ - test/test_tri_matrix.rb
150
+ homepage: ""
151
+ licenses: []
152
+
153
+ post_install_message:
154
+ rdoc_options: []
155
+
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: 3
164
+ segments:
165
+ - 0
166
+ version: "0"
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ hash: 3
173
+ segments:
174
+ - 0
175
+ version: "0"
176
+ requirements: []
177
+
178
+ rubyforge_project: ds
179
+ rubygems_version: 1.8.6
180
+ signing_key:
181
+ specification_version: 3
182
+ summary: Some common data structures.
183
+ test_files: []
184
+