Тема
"Бинарные поисковые деревья"
Необходимо построить бинарное поисковое дерево для последовательности вводимых чисел (из файла) и
- Найти вершины, у которых количество потомков в левом поддереве не равно количеству потомков в правом поддереве.
- Найти вершины, для которых высота левого поддерева не равна высоте правого поддерева.
- Найти вершины, у которых количество потомков в левом поддереве отличается от количества потомков в правом поддереве на 1.
- Найти высоту дерева H и удалить в нем все вершины на уровне H/2.
- Найти минимальный путь между листьями и удалить центральную вершину этого пути.
- Найти максимальный путь между вершинами дерева и удалить центральную вершину этого пути.
- Найти высоту дерева H и удалить в нем все вершины на глубине H/2, у которых высота левого поддерева равна высоте правого поддерева.
- Найти максимальный путь между вершинами дерева и удалить самую высокую вершину этого пути (т.е. на минимальной глубине).
- Найти вершины, через которые проходят пути максимальной длины, и удалить эти вершины.
- Найти вершины, через которые проходят наибольшее количество путей максимальной длины, и удалить эти вершины.
- Найти путь максимальной длины и отразить дерево зеркально относительно этого пути.
- Найти путь максимальной длины между вершинами с разным числом потомков.
- Найти путь максимальной длины между вершинами разной высоты.
- Найти пути минимальной длины между корнем и листьями и удалить центральные вершины этих путей.
- Определить, являются ли два дерева зеркальным отражением друг друга по структуре.
- Определить, можно ли одно дерево получить из второго удалением одной вершины (по структуре).
- Найти среднюю по значению вершину в дереве.
- Найти вершины, через которые проходит четное число путей максимальной длины, и удалить их.
- Найти вершины, через которые проходят пути максимальной длины, и удалить самую высокую из них их.
- Найти максимальный путь между вершинами разного уровня и сделать центральную вершину корнем.
- Найти вершины, у которых высоты поддеревьев равны, а количество потомков в правом и левом поддеревьях не равны.
- Найти вершины, у которых высоты поддеревьев не равны, а количество потомков в правом и левом поддеревьях равны.
- Найти вершины, через которые проходят пути длины К между висячими вершинами.
- Определить, существует ли путь длины H между висячими вершинами, где H - высота дерева.
- Удалить вершины, для которых высоты поддеревьев отличаются наибольшим образом.
- Удалить вершины, для которых количество потомков в правом и левом поддеревьях отличается наибольшим образом.
- Найти средний из листьев.
- Найти среднюю вершину в дереве, у которой высоты поддеревьев равны.
- Удалить все вершины, для которых количество потомков в левом поддереве отличается от количества вершин в правом поддереве на 2.
- Удалить все вершины, для которых высота левого поддерева отличается от высоты правого поддерева на 2.