Прежде всего, я хотел бы сообщить всем, что это задание, и я закончил поиск ближайшего предшественника с помощью O (n), но я бы как это сделать с O (log n), я знаю, что это возможно, поскольку дерево является деревом AVL.Как найти ближайший предшественник с временной сложностью O (log n)
Как я это сделал с O (n), я делю дерево на 2 на основе ключа (запись) и выполняю максимальный поиск для левого дерева и поиска минимального дерева. Я знаю, что это не log n, поскольку после того, как я сузил решение, мне все равно придется обрабатывать все узлы в левом или правом дереве, так что в лучшем случае это еще 1/2n.
Я могу видеть образец решений, но все равно не могу обдумать его. Я думаю об использовании указателя root и node, но я все еще не уверен, как его реализовать.
Любые указатели будут оценены, я googled и попытался решить эту проблему безрезультатно в течение нескольких дней.
очень четкое объяснение, спасибо, сэр! Я выложу свой код здесь, когда я это сделаю. –