[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}}
Очаквам решенията ви тук (ако имате въпроси по условието - пак тук ;))
Поздрави!