В настоящее время я работаю над программой, одним из шагов которой является проверка того, что лист c находится в том же поддереве, что и два других листа a и b в двоичном дереве T. Мой текущий подход таков: сначала найдите LCA каждой пары листьев в T и сохраните ее в словаре. Затем для каждого узла в дереве найдите все листья, являющиеся потомками, и сохраните их в словаре. Затем, когда мне нужно определить, находится ли c в том же поддереве, что и a и b, я нахожу LCA a и b и проверяю, является ли c его потомком.Самый эффективный алгоритм проверки, если лист c находится в том же поддереве, что и a и b
Мне нужно будет выполнить этот шаг для разных пар a и b и сделать это на двоичных деревьях, которые имеют до 600 листов, так что есть более быстрый алгоритм или, возможно, тот, который использует меньше памяти, что делает эта же задача? Благодарю.
Это очень полезно; Спасибо! –