Sha256: 6b11a740b6cc5215a149329d1817b7992d1fb60ee7c3989907a428a3498c35a4
Contents?: true
Size: 674 Bytes
Versions: 84
Compression:
Stored size: 674 Bytes
Contents
defmodule BinarySearchTree do def new(data) do %{data: data, left: nil, right: nil} end def insert(nil, node_value), do: new(node_value) def insert(%{data: data, left: left, right: right}, node_value) do if node_value <= data do %{data: data, left: insert(left, node_value), right: right} else %{data: data, left: left, right: insert(right, node_value)} end end def in_order(tree) do in_order(tree, []) |> Enum.reverse end def in_order(nil, accum) do accum end def in_order(tree, accum) do left_side = in_order(tree.left, accum) middle = [tree.data | left_side] in_order(tree.right, middle) end end
Version data entries
84 entries across 84 versions & 1 rubygems