У меня есть следующий вопрос, но у меня нет ответа на этот вопрос. Буду признателен, если мой метод правильный:
Q. При поиске значения ключа 60 в двоичном дереве поиска узлы, содержащие значения ключа 10, 20, 40, 50, 70, 80, 90, пересекаются, необязательно в указанном порядке. Сколько возможных порядков, в которых эти значения ключа могут встречаться в пути поиска от корневого узла, содержащего значение 60?
(A) 35 (B) 64 (C) 128 (D) 5040
Из этого вопроса я понимаю, что все указанные узлы должны быть включены в обход, и в конечном итоге мы должны достичь ключа 60. Например, одна такая комбинация будет:
10, 20, 40, 50, 90, 80, 70, 60.
Так как мы должны пройти все узлы, указанные выше, мы должны начать с 10 или 90. Если мы начнем с 20, мы не достигнем 10 (так как 60> 20, и мы пройдем правое поддерево 20)
Точно так же мы не можем начать с 80, потому что мы не сможем достичь 90, так как 80> 60, мы пройдем левое поддерево 80 и, таким образом, не достигнем 90.
Давайте возьмем 10. Остальные узлы - это 20, 40, 50, 70, 80, 90. Следующим узлом может быть 20 или 90. Мы не можем взять другие узлы по той же ранее упомянутой причине.
Если мы рассмотрим аналогично, на каждом уровне у нас есть два варианта. Поскольку есть 7 узлов, два варианта для первых 6 и нет выбора для последнего. Так что есть полностью
Это правильный ответ?
Если нет, то какой подход лучше?