Сергей Портнягин
Гуру
(3604)
1 месяц назад
Давайте разберем оба задания по порядку. Я предложу вам алгоритмы и примеры кода на Python, которые помогут вам решить эти задачи.
Задание 2: Сортировка дат рождения студентов
1. Создание массива дат рождения: Создайте массив с датами рождения студентов в порядке их размещения.
2. Сортировка с помощью дерева сортировки: Реализуйте алгоритм сортировки, основанный на дереве (например, бинарное дерево поиска).
Пример кода на Python:
class TreeNode:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def insert(root, key):
if root is None:
return TreeNode(key)
else:
if key < root.val:
root.left = insert(root.left, key)
else:
root.right = insert(root.right, key)
return root
def inorder_traversal(root, sorted_list):
if root:
inorder_traversal(root.left, sorted_list)
sorted_list.append(root.val)
inorder_traversal(root.right, sorted_list)
Даты рождения студентов
birth_dates = ["2001-05-21", "2000-11-15", "2002-01-30", "1999-07-19"]
Создание дерева и вставка дат
root = None
for date in birth_dates:
root = insert(root, date)
Получение отсортированного списка
sorted_birth_dates = []
inorder_traversal(root, sorted_birth_dates)
print("Отсортированные даты рождения:", sorted_birth_dates)
Задание 3: Сортировка названий улиц
1. Создание массива названий улиц: Создайте массив с названиями улиц, где проживают студенты.
2. Сортировка с помощью дерева сортировки: Используйте аналогичный подход для сортировки названий улиц.
Пример кода на Python:
Названия улиц студентов
street_names = ["Ленина", "Пушкина", "Гагарина", "Садовая"]
Создание дерева и вставка названий улиц
root_street = None
for street in street_names:
root_street = insert(root_street, street)
Получение отсортированного списка
sorted_street_names = []
inorder_traversal(root_street, sorted_street_names)
print("Отсортированные названия улиц:", sorted_street_names)
Итог
В обоих заданиях мы создали бинарное дерево поиска для хранения данных (дат рождения и названий улиц) и использовали обход в симметричном порядке для получения отсортированных списков. Вы можете адаптировать этот код под свои нужды, добавив дополнительные функции или изменив формат ввода данных.
Задание 2. Создать массив из дат рождения студентов группы в той последовательности, в которой они сидят. Отсортировать его с помощью дерева сортировки по возрастанию.
Задание 3. Создать массив из названий улиц, на которых проживают студенты группы, в той последовательности, в которой они сидят. Отсортировать его с помощью дерева сортировки по алфавиту.