- •М а т е м а т и к а дискретная математика
- •Содержание
- •Предисловие
- •1. Разбор типичных задач
- •Элементы теории множеств Множества. Операции над множествами
- •Отображения. Инъективные и сюръективные отображения
- •Отношение эквивалентности
- •Элементы теории кодирования
- •10100.00000.01010.10011.01011.11100.10010.00101.10010.
- •00110.00101.01001.10000.01000.00000.11001.1.
- •00110.00101.01001.10000.01000.00000.11001.1.
- •Решение.
- •1.3. Элементы теории графов. Поиск путей в графе
- •Решение
- •X: 9331 4359 7162 5571 8352;
- •Решение.
- •Решение.
- •Решение.
- •Решение.
- •Решение.
- •Решение.
- •Решение.
- •Задачи о раскраске графа
- •Вопросы к экзамену
- •Основная
- •Дополнительная
Решение.
Запишем список всех вершин в порядке возрастания номеров:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}.
Рассматривая список слева направо, находим первую висячую вершину. В нашем случае это вершина № 3. Определяем номер смежной с ней вершины (№ 2) и записываем его в новый список. При этом номер висячей вершины «удаляем» из первоначального списка:
список 2: {2, …},
список 1: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
а саму вершину из дерева (рис. 29).
Рис. 29
Возвращаемся к началу списка 1 и повторяем процесс: находим первую висячую вершину (№ 4), определяем номер смежной с ней вершины (№ 2) и записываем его в новый список. При этом номер висячей вершины «удаляем» из первоначального списка:
список 2: {2, 2…},
список 1: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
а саму вершину из дерева (рис. 30).
Рис. 30
Повторяем процесс до тех пор, пока в списке 2 не окажется числа, где- количество вершин в исходном дереве (в нашем случае).
Окончательно, получаем список 2: {2, 2, 1, 1, 1, 6, 7, 7, 6}. Это и есть код Прюфера для данного дерева.
6. Восстановить дерево по коду Прюфера: {3, 3, 2, 5, 5}.
Решение.
Определим количество вершин искомого дерева. В коде Прюфера 5 чисел, количество вершин на 2 больше, поэтому дерево имеет 7 вершин ().
Выпишем список всех вершин в порядке возрастания:
список 1: {1, 2, 3, 4, 5, ,6, 7}.
Слева направо просматриваем список 1, сравнивая его с кодом Прюфера (списком 2). Первая вершина, не входящая в код Прюфера, является висячей. В нашем случае это вершина № 1. Рисуем ребро дерева, соединяющее эту вершину с вершиной, стоящей первой в коде Прюфера (то есть с вершиной № 3) (рис. 31).
Рис. 31
Номер висячей вершины удаляем из списка 1, в списке 2 отмечаем использованный номер вершины (например, подчёркиваем):
список 2: {3, 3, 2, 5, 5},
список 1: {1, 2, 3, 4, 5, 6, 7}.
Снова слева направо просматриваем список 1, сравнивая его с кодом Прюфера (списком 2). Первая вершина, не входящая в код Прюфера, является висячей. Теперь это вершина № 4. Рисуем ребро дерева, соединяющее эту вершину с вершиной, являющейся первой неотмеченной в коде Прюфера (то есть с вершиной № 3) (рис. 32).
Номер висячей вершины удаляем из списка 1, в списке 2 отмечаем использованный номер вершины:
список 2: {3, 3, 2, 5, 5},
список 1: {1, 2, 3, 4, 5, 6, 7}.
Ещё раз слева направо просматриваем список 1, сравнивая его с кодом Прюфера (списком 2). Первая вершина, не входящая в код Прюфера, является «висячей». Это уже вершина № 3. Рисуем ребро дерева, соединяющее эту вершину с вершиной, являющейся первой неотмеченной в коде Прюфера (то есть с вершиной № 2) (рис.33).
Номер висячей вершины удаляем из списка 1, в списке 2 отмечаем использованный номер вершины:
список 2: {3, 3, 2, 5, 5},
список 1: {1, 2,3, 4, 5, 6, 7}.
Повторяем процесс до тех пор, пока не отметим все номера в списке 2. В результате получим (рис.34).
При этом в списке 1 останется две вершины (№ 5 и № 7). Поскольку одна из них (№ 5) есть в коде Прюфера, то вторая (№ 7) является висячей. Добавляем висячую вершину в рисунок (рис.35).
Искомое дерево построено.
Обойти бинарное ордерево тремя способами (рис.36).
Рис. 36