2016-08-10 8 views
-1

Вот проблема: у меня есть двоичное дерево поиска со всеми моими значениями, и при заданном значении мне нужно получить значение его родительского узла. Наверное, я мог бы реализовать дерево сам, но было бы очень приятно, если бы я мог использовать что-то вроде Set или Map, потому что, поскольку это для конкурса программирования, мне нужно иметь возможность быстро его кодировать и без ошибок. Я могу использовать либо C++ 11, либо Java, не могу использовать библиотеку за пределами стандартных библиотек, и, если возможно, мне удобнее кодировать в C++ вместо java, но я могу сделать и то, и другое.Получение родительского узла в двоичном дереве поиска

(OBS: Это только обучение не реальная конкуренция, то проблема может быть найдена здесь https://www.urionlinejudge.com.br/judge/pt/problems/view/2120 я смотрел на cplusplus.com проверить ссылку, но я не могу найти ничего, так.)

+0

Если это для соревнований, не ожидайте, что люди расскажут вам, как это записать - покажите, что вы сделали некоторые исследования в первую очередь. – naffarn

+0

Я занимался исследованиями, ничего не нашел по ссылке, и это только обучение не фактическое соревнование –

+0

http://stackoverflow.com/q/15180854/6665437 - http://stackoverflow.com/q/29579862/ 6665437 - http://stackoverflow.com/q/12342131/6665437 - http://www.geeksforgeeks.org/print-ancestors-of-a-given-node-in-binary-tree/ Реальный базовый Google поиск поднял эти вопросы, очень похожие на ваши. – naffarn

ответ

0

двоичное дерево - это определенный пользователем класс (т. е. не в библиотеке). В результате это, вероятно, будет либо определено держателем конкурса, либо вам придется писать его самостоятельно. Поэтому вам придется написать свою собственную функцию, чтобы справиться с этим. Если это не обязательно должны работать, вероятно, можно предположить, базовую структуру бинарного дерева узлов как:

struct Node { 
    Data data; 
    struct Node left; 
    struct Node right; 
} 

Цель вопросов, как это будет, чтобы убедиться, что вы можете выяснить алгоритмы, не то, что вы знаете, как использовать STL. Вы должны будете реализовать (возможно) дерево и (определенно) алгоритм самостоятельно.

+0

Это просто не так. Для большинства вопросов существует умный способ использования уже предопределенных функций, которые позволят вам решить эту задачу быстрее, чем определить ее для себя. Но я думаю, что вы правы, я не могу найти способ сделать это, не выполняя его сам. –

Смежные вопросы