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

Version Path
trackler-2.2.1.109 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.108 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.107 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.106 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.105 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.104 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.103 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.102 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.101 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.100 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.99 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.98 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.97 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.96 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.95 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.94 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.93 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.92 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.91 tracks/elixir/exercises/binary-search-tree/example.exs
trackler-2.2.1.90 tracks/elixir/exercises/binary-search-tree/example.exs