Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА №5 - II сем. - Графы.doc
Скачиваний:
7
Добавлен:
11.08.2019
Размер:
82.43 Кб
Скачать

Министерство образования Российской Федерации

Тверской государственный технический университет

Кафедра электронных вычислительных машин

Графы

Методические указания

к лабораторной работе №5 по дисциплине

«Программирование на языках высокого уровня»

для студентов специальности 220100 (ВМКСС)

Тверь, 2010 Цель работы

Научиться создавать и использовать динамические структуры данных –графы. Поскольку стандартных классов для этих целей не существует, все уровни сложности данной лабораторной работы подразумевают создание собственного класса для представления графа.

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

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

Содержание отчета

Отчет по работе должен содержать:

  1. Цель работы

  2. Вариант задания на выполнение работы

  3. Алгоритм программы в виде псевдокода.

  4. Исходный текст программы.

  5. Результаты выполнения программы.

Варианты выполнения работы

Варианты 1-10 (Сложность 1)

  1. Создать класс неориентированного графа, вершины которого помечены числами. Информацию о графе хранить в виде матрицы связности. Реализовать в этом классе функцию, определяющую вершину с наибольшим количеством связей.

  2. Создать класс ориентированного графа, вершины которого помечены числами. Информацию о графе хранить в виде матрицы связности. Реализовать в этом классе функцию, определяющую вершину с наибольшей суммарной длиной связей со смежными вершинами.

  3. . ..

Варианты 11-20 (Сложность 2)

  1. Создать класс неориентированного графа, вершины которого помечены числами. Информацию о графе хранить в виде матрицы связности. Реализовать в этом классе функцию, вычисляющую путевую матрицы порядка N.

  2. Создать класс неориентированного графа, вершины которого помечены числами. Информацию о графе хранить в виде матрицы связности. Реализовать в этом классе функцию, выполняющую построение списков для хранения той же информации.

  3. Создать класс неориентированного графа, вершины которого помечены числами. Информацию о графе хранить в виде списков. Реализовать в этом классе функцию, выполняющую построение матрицы связности для хранения той же информации.

Варианты 21-30 (Сложность 3)

  1. Создать класс неориентированного графа. Реализовать в этом классе функцию обхода всех вершин графа методом поиска в глубину с использованием рекурсии. Для хранения информации о вершинах и связях использовать матрицу связности.

  2. Создать класс неориентированного графа. Реализовать в этом классе функцию обхода всех вершин графа методом поиска в глубину без использования рекурсии. Для хранения информации о вершинах и связях использовать матрицу связности.

  3. Создать класс неориентированного графа. Реализовать в этом классе функцию обхода всех вершин графа методом поиска в ширину. Для хранения информации о вершинах и связях использовать матрицу связности.

  4. Создать класс неориентированного графа. Реализовать в этом классе функцию поиска эйлерова цикла методом поиска в глубину. Для хранения информации о вершинах и связях использовать матрицу связности.

  5. Создать класс неориентированного графа. Реализовать в этом классе функцию поиска гамильтонова цикла методом поиска в глубину. Для хранения информации о вершинах и связях использовать матрицу связности.