Anfangseingabe = [7, 4, 9, 1, 6, 14, 10]Binärer Baum - Wie schließe ich den Stamm in die endgültige Ausgabe ein?
= erwartete [1, 4, 6, 7, 9, 10, 14]
Und meinen Ausgang .. .
[4, 9, 1, 6, 14, 10]
I den Stamm nicht, um herauszufinden, wie man schließt Objekt in meinem Ausgangsarray scheinen kann.
def insert_node(element,trunk)
if element < trunk.payload && trunk.left == nil
# Build node and place it on left of trunk
trunk.left = BinaryTree.new(element, nil, nil)
elsif element > trunk.payload && trunk.right == nil
# Build node and place it on right of trunk
trunk.right = BinaryTree.new(element, nil, nil)
elsif element < trunk.payload
# Update pointer
insert_node(element, trunk.left)
elsif element > trunk.payload
# Update pointer
insert_node(element, trunk.right)
end
end
def build_tree(array)
trunk = BinaryTree.new(array.first, nil, nil)
array.shift
output = []
array.each do |element|
# Insert each element
output << insert_node(element,trunk).payload
end
return output
end
Und meine BinaryTree Implementierung
class BinaryTree
attr_accessor :payload, :left, :right
def initialize(payload, left, right)
@payload = payload
@left = left
@right = right
end
end
Könnten Sie weitere Informationen erhalten? Was ist dein Beitrag? –
Und zeigen Sie uns auch Ihre Implementierung von BinaryTree –