2) По заданному коду Прюфера восстановите дерево T. Изобразите построенное дерево как корневое (T, 1) с корнем в вершине 1.
(2, 2, 7, 2, 11, 11, 7, 7, 6, 9, 4, 5)

elit5555 elit5555    3   11.04.2020 15:41    34

Ответы
veronikashows veronikashows  27.12.2023 10:51
Для восстановления дерева по заданному коду Прюфера, мы будем использовать следующие шаги:

Шаг 1: Создайте список "degrees" для хранения степеней каждой вершины в дереве. Начально все степени равны 1, так как каждая вершина имеет по крайней мере одно ребро.

Шаг 2: Создайте пустой список "neighbors" для хранения списка смежных вершин каждой вершины.

Шаг 3: Пройдите по заданному коду Прюфера и для каждого элемента выполните следующие шаги:

- Увеличьте степень текущей вершины на 1.
- Добавьте текущую вершину в список смежных вершин для соответствующей вершины из кода Прюфера.

Шаг 4: Найдите вершину с наименьшей степенью, которая не была использована в коде Прюфера. Обозначим эту вершину как "leaf" (лист).

Шаг 5: Найдите первую вершину из кода Прюфера, которая не была использована ранее и обозначим эту вершину как "vertex".

Шаг 6: Добавьте ребро между "leaf" и "vertex". Уменьшите степени "leaf" и "vertex" на 1.

Шаг 7: Повторяйте шаги 4-6, пока не заполните все ребра.

Шаг 8: Изобразите построенное дерево, используя корневую нотацию (T, 1) с корнем в вершине 1.

Давайте применим эти шаги к данному коду Прюфера:

Исходный код Прюфера: (2, 2, 7, 2, 11, 11, 7, 7, 6, 9, 4, 5)

Шаг 1: В начале все степени равны 1.

degrees = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Шаг 2: Создайте пустой список "neighbors".

neighbors = {}

Шаг 3: Переберите каждый элемент из исходного кода Прюфера и выполните действия из шага 3.

- Для элемента 2:
- Увеличьте степень вершины 2 на 1.
- Добавьте текущую вершину 2 в список смежных вершин для соответствующей вершины.

degrees = [1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
neighbors = {2: [2]}

- Для элемента 2:
- Увеличьте степень вершины 2 на 1.
- Добавьте текущую вершину 2 в список смежных вершин для соответствующей вершины.

degrees = [1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
neighbors = {2: [2, 2]}

- Для элемента 7:
- Увеличьте степень вершины 7 на 1.
- Добавьте текущую вершину 7 в список смежных вершин для соответствующей вершины.

degrees = [1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1]
neighbors = {2: [2, 2], 7: [7]}

- Для элемента 2:
- Увеличьте степень вершины 2 на 1.
- Добавьте текущую вершину 2 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1]
neighbors = {2: [2, 2, 2], 7: [7]}

- Для элемента 11:
- Увеличьте степень вершины 11 на 1.
- Добавьте текущую вершину 11 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1]
neighbors = {2: [2, 2, 2], 7: [7], 11: [11]}

- Для элемента 11:
- Увеличьте степень вершины 11 на 1.
- Добавьте текущую вершину 11 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 1, 2, 1, 1, 1, 3, 1]
neighbors = {2: [2, 2, 2], 7: [7], 11: [11, 11]}

- Для элемента 7:
- Увеличьте степень вершины 7 на 1.
- Добавьте текущую вершину 7 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1]
neighbors = {2: [2, 2, 2], 7: [7, 7], 11: [11, 11]}

- Для элемента 7:
- Увеличьте степень вершины 7 на 1.
- Добавьте текущую вершину 7 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 1, 4, 1, 1, 1, 3, 1]
neighbors = {2: [2, 2, 2], 7: [7, 7, 7], 11: [11, 11]}

- Для элемента 6:
- Увеличьте степень вершины 6 на 1.
- Добавьте текущую вершину 6 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 2, 4, 1, 1, 1, 3, 1]
neighbors = {2: [2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6]}

- Для элемента 9:
- Увеличьте степень вершины 9 на 1.
- Добавьте текущую вершину 9 в список смежных вершин для соответствующей вершины.

degrees = [1, 4, 1, 1, 1, 2, 4, 1, 2, 1, 3, 1]
neighbors = {2: [2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9]}

- Для элемента 4:
- Увеличьте степень вершины 4 на 1.
- Добавьте текущую вершину 4 в список смежных вершин для соответствующей вершины.

degrees = [1, 5, 1, 1, 1, 2, 4, 1, 2, 1, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4]}

- Для элемента 5:
- Увеличьте степень вершины 5 на 1.
- Добавьте текущую вершину 5 в список смежных вершин для соответствующей вершины.

degrees = [1, 5, 1, 1, 2, 2, 4, 1, 2, 1, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4], 5: [5]}

Шаг 4: Вершина с наименьшей степенью, которая не была использована в коде Прюфера, - это вершина 3.

Шаг 5: Первая вершина из кода Прюфера, которая не была использована ранее, - это вершина 3.

Шаг 6: Добавьте ребро между вершиной 3 и вершиной 3. Уменьшите степени вершин 3 и 3 на 1.

- После добавления ребра:

degrees = [1, 5, 0, 1, 2, 2, 4, 1, 2, 1, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4], 5: [5], 3: [3]}

Шаг 7: Повторите шаги 4-6, пока не заполните все ребра.

- Вершина с наименьшей степенью, которая не была использована в коде Прюфера, - это вершина 8.
- Первая вершина из кода Прюфера, которая не была использована ранее, - это вершина 8.
- Добавьте ребро между вершиной 8 и вершиной 8. Уменьшите степени вершин 8 и 8 на 1.

- После добавления ребра:

degrees = [1, 5, 0, 1, 2, 2, 4, 0, 2, 1, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4], 5: [5], 3: [3], 8: [8]}

- Вершина с наименьшей степенью, которая не была использована в коде Прюфера, - это вершина 10.
- Первая вершина из кода Прюфера, которая не была использована ранее, - это вершина 10.
- Добавьте ребро между вершиной 10 и вершиной 10. Уменьшите степени вершин 10 и 10 на 1.

- После добавления ребра:

degrees = [1, 5, 0, 1, 2, 2, 4, 0, 2, 0, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4], 5: [5], 3: [3], 8: [8], 10: [10]}

- Вершина с наименьшей степенью, которая не была использована в коде Прюфера, - это вершина 1.
- Первая вершина из кода Прюфера, которая не была использована ранее, - это вершина 1.
- Добавьте ребро между вершиной 1 и вершиной 1. Уменьшите степени вершин 1 и 1 на 1.

- После добавления ребра:

degrees = [0, 5, 0, 1, 2, 2, 4, 0, 2, 0, 3, 1]
neighbors = {2: [2, 2, 2, 2], 7: [7, 7, 7], 11: [11, 11], 6: [6], 9: [9], 4: [4], 5: [5], 3: [3], 8: [8], 10: [10], 1: [1]}

- Вершина с наименьшей степенью, которая не была использована в коде Прюфера, - это вершина 12.
- Первая вершина из кода Прюфера, которая не была использована ранее, - это вершина 12.
- Добавьте ребро между вершиной 12 и вершиной 1. Уменьшите степени вершин 12 и 1 на 1.

- После добавления ребра:

degrees = [0, 5, 0, 1, 2, 2, 4, 0, 2, 0, 3, 0]
neighbors = {2: [2, 2, 2,
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика