[Practice] Уеб програмиране с Ruby on Rails - Binary Tree
Здравейте,
във връзка с предложението на @kaloyankostadinow в ето тази тема, реших да пусна една задачка за упражнение тук във форума, за да можете да си я решавате и дискутирате, без да ви се карам, че споделяте решението, а пък не е трябвало.
Ето я и самата задачка
Имплементирай клас BinaryTree, който има следните полета:
attr_reader :value attr_accessor :left, :right
При инициализация приема или списък или хеш, по следният начин:
BinaryTree.new [1, [2, [4, 5]], [3, [nil, 6]]]
Което създава следното дърво:
1 / \ 2 3 / \ \ 4 5 6
или с хеш:
BinaryTree.new {:value=>1, :left=>{:value=>2, :left=>{:value=>4}, :right=>{:value=>5}}, :right=>{:value=>3, :right=>{:value=>5}}}
(което ще създаде отново същото дърво)
Дървото ще има следните instance методи:
b = BinaryTree.new [1, [2, 3]] b.to_s # => 1\n / \\\n 2 3 b.to_a # => [1, [2, 3]] b.to_h # => {:value=>1, :left=>{:value=>2}, :right=>{:value=>3}}
Очаквам решенията ви тук (ако имате въпроси по условието - пак тук ;))
Поздрави!