Официальный сайт студ.городка НГТУ
Программирование и БД » Подскажите, немного запутался (BST-деревья) 

#1  27.10.12 20:21

sav
Профиль

Подскажите, немного запутался (BST-деревья)

Есть некая задача:

Код::

Write an algorithm to find the ‘next’ node (e.g., in-order successor) of a given node in a binary search tree where each node has a link to its parent.

Пояснение к решению:

Код::

We approach this problem by thinking very, very carefully about what happens on an in-order traversal. On an in-order traversal, we visit X.left, then X, then X.right.
So, if we want to find X.successor(), we do the following:
1. If X has a right child, then the successor must be on the right side of X (because of the order in which we visit nodes). Specifically, the left-most child must be the first node visited in that subtree.
2. Else, we go to X’s parent (call it P).
2.a. If X was a left child (P.left = X), then P is the successor of X
2.b. If X was a right child (P.right = X), then we have fully visited P, so we call successor(P).

И само решение:

Код::

    public static TreeNode inorderSucc ( TreeNode e){
        if( e != null )
        {
            TreeNode p;
            // Found right children -> return 1st inorder node on right
            if( e.parent == null || e.right != null )
            {
                p = leftMostChild( e.right );
            }
            else
            {
                // Go up until we’re on left instead of right (case 2b)
                while( ( p = e.parent ) != null )
                {
                    if( p.left == e )
                    {
                        break;
                    }
                    e = p;
                }
            }
            return p;
        }
        return null;
    }

    public static TreeNode leftMostChild ( TreeNode e){
        if( e == null )
        {
            return null;
        }
        while( e.left != null )
        {
            e = e.left;
        }
        return e;
    }

Проблема в том, что мне не понятна постановка вопроса. Вы не могли бы исходя из решения, описать, в чем заключается смысл задачи?:)

Offline

#2  27.10.12 23:58

Re: Подскажите, немного запутался (BST-деревья)

Ну вроде бы как это не рекурсивный алгоритм поиска элемента в BST

Offline

#3  04.11.12 07:22

Re: Подскажите, немного запутался (BST-деревья)

балин однажды этот чувак нашими силами в гугл устроится.
причем, он - аспирант ВТ, который, судя по руслановским словам, не знает элементарных вещей вроде графов. а это всего-то 3й курс.
кстати, он так уже успел поработать в parallels, alawar,  ЦФТ.

Offline

#4  04.11.12 18:48

sav
Профиль

Re: Подскажите, немного запутался (BST-деревья)

Укроп написал(а):

балин однажды этот чувак нашими силами в гугл устроится.
причем, он - аспирант ВТ, который, судя по руслановским словам, не знает элементарных вещей вроде графов. а это всего-то 3й курс.
кстати, он так уже успел поработать в parallels, alawar,  ЦФТ.

Ты меня правда, умиляешь:)
Откуда инфа про аспиранта ВТ и такой список компаний??:)
И тем более о моем знании графов?:)

Но даже если бы ты был прав. Что плохого в том, чтобы задать вопрос и получить ответ?
Тебя же Саша зовут? Ты какой то неадекват прям.

Offline

#5  04.11.12 22:17

Re: Подскажите, немного запутался (BST-деревья)

sav, да, простите, вы магистрант были. оттуда и знаю что мимокрокодил в тех компаниях.
сколько лет должно пройти, работ сменено, ЗП повышено, чтобы ты перестал просить нас на школофоруме решать за тебя задания для  собеседования?

Offline

#6  05.11.12 16:05

sav
Профиль

Re: Подскажите, немного запутался (BST-деревья)

Укроп написал(а):

sav, да, простите, вы магистрант были. оттуда и знаю что мимокрокодил в тех компаниях.
сколько лет должно пройти, работ сменено, ЗП повышено, чтобы ты перестал просить нас на школофоруме решать за тебя задания для  собеседования?

а еще ты промахнулся с alawar, ЦФТ, в которых никогда не работал.
в parallells - видимо случайно, ткнул в небо пальцем и попал.
ты меньше слухов собирай, чтобы делать выводы.


и чем тебя напрягают вопросы, которые мозги мне разминать помогают?
а еще скажи, что ты видишь плохого в том, чтобы готовиться к серьезным собеседованиям?
ты ведешь себя как полный дебил.
как это совмещается, с нормальной соображалкой, я не представляю. то что ты шаришь, в этом не сомневаюсь.
ps: то, что ты не пройдешь собеседования, к которым я готовлюсь - в этом тоже.
pps: я даже не учился на кафедре ВТ. у нас не было, ни алгоритмов, ни стуктур данных. это так, к сведению.

Исправлено sav (05.11.12 20:00)

Offline

#7  07.11.12 20:38

Re: Подскажите, немного запутался (BST-деревья)

боже, как припекло мальчику кекеке. аж начал указывать на потолок способностей другого человека и на собственное превосходство на основе еще не полученного собственного достижения.

а MCTS и RHCE и кафедра ВТ наверное правда сделали меня полным дибилом. как-то так.

Offline

#8  14.11.12 01:47

Re: Подскажите, немного запутался (BST-деревья)

Укроп, а ты ВТ то закончил в итоге ? :-)

Offline

#9  17.11.12 17:23

Re: Подскажите, немного запутался (BST-деревья)

я да. а ты?

Offline

Программирование и БД » Подскажите, немного запутался (BST-деревья) 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.030 сек.
Выполнено 14 запросов.