
- •Введение
- •Начальные сведения о программах на языке Pascal
- •Структура Pascal-программы
- •Внешний вид исходного текста программы
- •Простейшие операторы
- •Ввод и вывод: консоль
- •Типы данных и операции
- •Операции и выражения
- •Приведение типов данных
- •Операции
- •Составной оператор
- •Инструкции выбора
- •Процедуры и функции
- •Множества
- •Сортировки массивов
- •Улучшенные сортировки
- •Рекурсия
- •Модуль GraphAbc
- •Указатели в Паскале
- •Динамически распределяемая память
- •Динамические структуры данных
- •Списочные структуры
- •Текстовые файлы
- •Бинарные файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Элементы комбинаторики
- •Матрица смежности.
- •2. Массив ребер.
- •3. Списки инцидентности.
- •4. Списки смежности.
- •Части графа.
- •Методы обхода графа.
- •Поиск в глубину.
- •Поиск в ширину.
- •Поиск кратчайших путей.(Алгоритм Дейкстры).
- •Основы ооп
- •Классы объектов
- •Принципы ооп
- •Создание и уничтожение объектов
- •Полиморфизм и наследование в Delphi
- •Наследование
- •Полиморфизм
- •Статическое замещение методов.
- •2) Перегрузка
- •Интегрированная среда разработки Delphi 7
- •Стандартные компоненты Delphi
- •Дополнительные компоненты
- •Другие дополнительные компоненты
- •Компоненты 32-разрядного интерфейса
- •Коллекция картинок
- •2 Индикатор выполнения
- •3 Ползунок
- •Реверсивный счетчик UpDown
- •Редактор горячих клавиш
- •Компоненты для работы с датами
- •Строка состояния
- •8 Панель инструментов
- •9 Элементы с вкладками
- •10 Компонент RichEdit
- •Компоненты вкладки Dialogs Страница Dialogs
- •Диалог выбора шрифта — компонент FontDialog
- •Диалог выбора цвета — компонент ColorDialog
- •Диалоги печати и установки принтера — компоненты PrintDialog и PrinterSetupDialog
- •Диалоги поиска и замены текста — компоненты FindDialog и ReplaceDialog
- •Страница Samples
- •Графические возможности Delphi 7
- •Формирование изображений программным способом
- •Мультимедиа-возможности Delphi
- •Компонент Animate
- •Компонент MediaPlayer
- •Воспроизведение звука
- •Просмотр видеороликов и анимации
- •Компоненты доступа к базам данных. Компоненты представленя данных.
4. Списки смежности.
Представляет собой структуру данных, которая для каждой вершины графа хранит список смежных с ней вершин. Список представляет собой массив указателей, i-ый элемент которого содержит указатель на список вершин, смежных с i-ой вершиной.
Список смежности более эффективен по сравнению с матрицей смежности, так как исключает хранение нулевых элементов.
Например (рис.6):
1: |
2,3 |
2: |
1,4,5 |
3: |
1,2,5 |
4: |
1,2,3,5 |
5: |
1,4 |
|
Матрицей
инцидентности
(инциденций) неориентированного графа
называется матрица
|
|
Матрицей
инцидентности
(инциденций) ориентированного графа
называется матрица
,
для которой
,
если вершина
является
началом дуги
,
|
Части графа.
Пусть дан граф G=(V, Е).
Граф G’=(V’, Е’) называется его подграфом, если он получен из исходного путем удалением части вершин вместе с инцидентными им ребрами.
Например, если из графа представленного на рис.6 удалить вершины 3 и 5, то получим граф
Всего из одного графа можно получить 2n подграфов.
Исходный граф по отношению к подграфу называется надграфом.
Маршрутом между вершинами v и w в графе G=(V, Е) называется последовательность ребер вида (v,x1), (x1,x2), (x2,x3),…, (xn-1,xn), (xn,w).
Например,
Рис.
7
Рис.8.
(1,2), (2,3)-маршрут из первой вершины в третью.
Маршрут, у которого начальная вершина совпадает с конечной называется циклом. Например, на рис.8 (1,2), (2,3), (3,4), (4,1).
Вершина v называется достижимой из вершины w, если существует маршрут из w в v. Вершины v и w взаимнодостижимы если существует маршрут из v в w и маршрут из w в v. Для неориентированных графов достижимость вершин влечет взаимодостижимость.
Вершина графа для которой не существует достижимых вершин и которая не достижима из других вершин называется изолированной.
Очевидно, что вершина изолирована тогда и только тогда когда у нее нет инцедентных ребер.
Пример.
Вершина
5 – изолированная вершина.
Методы обхода графа.
Под обходом графа понимается перебор его вершин в определенном порядке, связанный с проходом по некоторым ребрам.
Существует много алгоритмов на графах, в основе которых лежит систематический перебор вершин графа, такой, что каждая вершина просматривается в точности один раз. Поэтому такой задачей является нахождение хороших методов поиска в графе. Вообще говоря, метод поиска «хорош», если
• (а) он позволяет алгоритму решения интересующее нас задачи легко «погрузиться» в этот метод и
• (б) каждое ребро графа анализируется не более одного раза (или, что существенно не меняет ситуации, число раз, ограниченное константой).
Опишем теперь такой метод поиска и неориентированном графе, который стал одной из основных методик проектировании графовых алгоритмов. Этот метод называется поиском в глубину.