Я хочу преобразовать отсортированный целочисленный массив в двоичное дерево поиска. Кажется, я понимаю, как это сделать. Я разместил свой псевдокод ниже. Чего я не могу представить, так это того, как на самом деле работает рекурсия.
Итак, если мой массив равен 1, 2, 3, 4, 5... Сначала я делаю 3 корнем своего BST. Затем я делаю 2 левым дочерним узлом 3. Затем я делаю 1 левым дочерним узлом 2 и возвращаюсь к 2? Я не понимаю, как рекурсия проходит через весь процесс...
Заранее спасибо, и извините, если этот вопрос плохо объяснен. Мне не нужен явный код, но я был бы очень признателен, если бы кто-нибудь помог мне понять, как рекурсия проходит через проблему (т.е. какие узлы посещаются в каком порядке/как работает стек вызовов)
Псевдокод:
Шаг 1. Создайте функцию, которая принимает массив целых чисел, начало и конец целого числа. Start = 0, end = целочисленный размер массива - 1.
Шаг 2. Создайте целое число середины, равное (начало + конец)/2.
Шаг 3. Проверьте, начинается ли > конец.
Шаг 4. Если да, верните ноль.
Шаг 5. В противном случае сделайте значение в среднем индексе корнем вашего дерева.
Шаг 6. Установите левый узел корня равным функции с (массив, начало, середина - 1).
Шаг 7. Установите правый узел корня равным функции с (массив, середина + 1, конец).