examples/binary_search_tree.rb in compsci-0.3.0.1 vs examples/binary_search_tree.rb in compsci-0.3.1.1

- old
+ new

@@ -1,16 +1,51 @@ require 'compsci/node' -require 'compsci/binary_search_tree' require 'compsci/names' include CompSci -RANDMAX = 99 +puts <<EOF +# +# Insert nodes into a BST (random keys, duplicates: true) +# + +EOF + +randmax = 99 + p vals = Names::WW1.shuffle -p keys = Array.new(vals.size) { rand RANDMAX } +p keys = Array.new(vals.size) { rand randmax } -root = BinarySearchTree.new_node(keys.shift, vals.shift) -tree = BinarySearchTree.new(root) -tree[keys.shift] = vals.shift until keys.empty? -# tree.insert(keys.shift, vals.shift) until keys.empty? -puts tree +root = KeyNode.new(vals.shift, key: keys.shift, children: 2, duplicates: true) +root.insert(keys.shift, vals.shift) until keys.empty? + +puts root.display +puts + +puts <<EOF + +# +# Insert 30 nodes into a BST (unique keys, duplicates: false) +# + +EOF + +keys = (1..30).to_a.shuffle +vals = keys.map { rand 99 } + +root = KeyNode.new(vals.shift, key: keys.shift, children: 2) +root.insert(keys.shift, vals.shift) while !keys.empty? +puts root.display + +puts <<EOF + +# +# Search for 30 different keys +# + +EOF + +(1..30).each { |key| + node = root.search(key) + puts "found #{node}" +}