Я не думаю, что это возможно. Рассмотрим эти два дерева:
0 0
/\ / \
1 2 1 2
/\ /\ /\
3 4 3 4 5 6
/\
5 6
Эти полные бинарные деревья (по вашему определению), и даже если они разные деревья, они имеют те же обходов уровень порядка:.
Теперь посмотрим в их зеркалах:
0 0
/\ / \
2 1 2 1
/\ /\ /\
4 3 6 5 4 3
/\
6 5
Обратите внимание, что левое дерево имеет уровень порядка обхода 0214365, в то время как правая дерево имеет уровень порядка обхода 0216543. другими словами, оригинальные деревья имеют те же обходы порядка уровне, но их зеркала имеют разные обходы.
Теперь подумайте о том, что произойдет, если у вас есть свой алгоритм, и вы подаете(обход уровня одного из деревьев) и 0214365 (обход уровня одного из зеркал). Что может сказать алгоритм? Если он говорит, что это зеркала, это будет неправильно, если вы будете кормить во втором из входных деревьев. Если в нем говорится, что они не зеркала, это будет неправильно, если вы будете кормить в первом из входных деревьев. Поэтому алгоритм не всегда дает правильный ответ.
Надеюсь, это поможет!
Что вы думаете о себе? –
То, что я думал, сначала сравнивает корневой элемент. Если они равны, то сравнивайте следующие два элемента (f1, f2) с (s2, s1) в обход порядка порядка. Если они равны, то переместите два следующих двух элемента. числа представляют собой первое и второе. – Tippis