def text_tree_prefix
      if (node = @parent)
        str = '+'
      else
        # Prefix start for root node line
        str = 'o'
      end

      while node
        last_child = false
        if node.parent
          if node.parent.smaller == node
            last_child = node.parent.equal.nil? && node.parent.larger.nil?
          elsif node.parent.equal == node
            last_child = node.parent.larger.nil?
          elsif node.parent.larger == node
            last_child = true
          end
        else
          # Padding for the root node
          str = '  ' + str
          break
        end

        str = (last_child ? '   ' : '|  ') + str
        node = node.parent
      end

      str
    end
def text_tree_prefix
      if (node = @parent)
        str = '+'
      else
        # Prefix start for root node line
        str = 'o'
      end

      while node
        last_child = false
        if node.parent
          if node.parent.smaller == node
            last_child = node.parent.equal.nil? && node.parent.larger.nil?
          elsif node.parent.equal == node
            last_child = node.parent.larger.nil?
          elsif node.parent.larger == node
            last_child = true
          end
        else
          # Padding for the root node
          str = '  ' + str
          break
        end

        str = (last_child ? '   ' : '|  ') + str
        node = node.parent
      end

      str
    end
The indentation and arch routing for the text tree.
 @return [String]