Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Методы дискретной математики задание 2,3,

Александр Плетнёв Ученик (246), на голосовании 3 дня назад
Помогите пожалуйста решить задания
Задание 2. Создать массив из дат рождения студентов группы в той последовательности, в которой они сидят. Отсортировать его с помощью дерева сортировки по возрастанию.
Задание 3. Создать массив из названий улиц, на которых проживают студенты группы, в той последовательности, в которой они сидят. Отсортировать его с помощью дерева сортировки по алфавиту.
Голосование за лучший ответ
Сергей Портнягин Гуру (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)


Итог

В обоих заданиях мы создали бинарное дерево поиска для хранения данных (дат рождения и названий улиц) и использовали обход в симметричном порядке для получения отсортированных списков. Вы можете адаптировать этот код под свои нужды, добавив дополнительные функции или изменив формат ввода данных.
Похожие вопросы