Skip to content

Instantly share code, notes, and snippets.

View guillaumebihet's full-sized avatar

Guillaume Bihet guillaumebihet

View GitHub Profile

Keybase proof

I hereby claim:

  • I am guillaumebihet on github.
  • I am guillaume_b (https://keybase.io/guillaume_b) on keybase.
  • I have a public key ASC7HhBT0oei5fpDZ8B-ru72SHhbtdOcbd3cP9MXslM_EQo

To claim this, I am signing this object:

def self.build_random_tree(array, k)
raise Exception, 'A node cannot have a negative number of children' if k < 0
first = array.delete_at(rand(array.length)) #choose randomly an item and remove it
rest = array.shuffle! #shuffle the rest of the array
trunk = Tree.new(first, Array.new(rand(k+1), nil)) #trunk is created with an array
#made of a random number nil elements that is greater or equal to 0 and less than k+1
#(i.e. less or equal to k). In other words, with a number of nodes between zero and k
rest.each do |i|
queue = [trunk]
class Tree
attr_accessor :payload, :children
def initialize(payload, children)
@payload = payload
@children = children
end
def self.build_k_ary_tree(array, k) #where k = number of children per node
raise Exception, 'A node cannot have a negative number of children' if k < 0
class Tree
attr_accessor :payload, :children
def initialize(payload, children)
@payload = payload
@children = children
end
end
#The "Leafs" of the tree, elements that have no children
@guillaumebihet
guillaumebihet / quizz_3.rb
Created October 1, 2017 15:30
Quizz 3 - build a class
class Star
attr_accessor :name, :spectral_class, :type
def initialize(name, spectral_class, type)
@name = name
@spectral_class = spectral_class
@type = type
end
def describe