#1 27.10.12 20:21
Подскажите, немного запутался (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
#3 04.11.12 07:22
Re: Подскажите, немного запутался (BST-деревья)
балин однажды этот чувак нашими силами в гугл устроится.
причем, он - аспирант ВТ, который, судя по руслановским словам, не знает элементарных вещей вроде графов. а это всего-то 3й курс.
кстати, он так уже успел поработать в parallels, alawar, ЦФТ.
Offline
#4 04.11.12 18:48
Re: Подскажите, немного запутался (BST-деревья)
Укроп написал(а):
балин однажды этот чувак нашими силами в гугл устроится.
причем, он - аспирант ВТ, который, судя по руслановским словам, не знает элементарных вещей вроде графов. а это всего-то 3й курс.
кстати, он так уже успел поработать в parallels, alawar, ЦФТ.
Ты меня правда, умиляешь:)
Откуда инфа про аспиранта ВТ и такой список компаний??:)
И тем более о моем знании графов?:)
Но даже если бы ты был прав. Что плохого в том, чтобы задать вопрос и получить ответ?
Тебя же Саша зовут? Ты какой то неадекват прям.
Offline
#6 05.11.12 16:05
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

