Каков основной алгоритм проверки симметричности дерева. Поскольку это двоичное дерево, я бы предположил, что это будет рекурсивное определение сортировки.
Формальный вопрос ниже:
Бинарное дерево является зеркальным отображением самого себя, если его левое и правое поддеревья являются идентичными зеркальными отображениями. т.е. двоичное дерево симметрично. Лучше всего это пояснить на нескольких примерах.
1
/ \
2 2
ИСТИНА
1
/ \
2 2
\
3
ЛОЖЬ
1
/ \
2 2
/ \ / \
4 3 3 4
ИСТИНА
1
/ \
2 2
/ \ / \
3 4 3 4
ЛОЖЬ
1
/ \
2 2
/ \
3 3
ИСТИНА
На выбранном языке программирования определите структуру класса BTree / C и связанный метод, чтобы проверить, является ли дерево зеркальным отображением. . Для языков со статической типизацией вы можете предположить, что все значения узлов являются целыми числами.
Class/structure definition
BTree {
BTree left;
BTree right;
int value;
}
Предположим, что корень дерева отслеживается вызывающей стороной и для него вызывается функция isMirror ().
Кроме того, при определении класса не забудьте предоставить конструктор без аргументов и методы получения / установки, если элементы данных не являются общедоступными.