
- •Введение
- •Начальные сведения о программах на языке 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
- •Воспроизведение звука
- •Просмотр видеороликов и анимации
- •Компоненты доступа к базам данных. Компоненты представленя данных.
Матрица смежности.
Матрица смежности - это матрица размером n×n, в которой cij=1, если существует ребро из i в j и cij=0 в противном случае.
Например, составим для вышеприведенного графа матрицу смежности:
|
1 |
2 |
3 |
4 |
5 |
1 |
0 |
1 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
1 |
3 |
1 |
1 |
0 |
0 |
1 |
4 |
1 |
1 |
1 |
0 |
1 |
5 |
0 |
1 |
0 |
1 |
0 |
Для неориентированного графа справедливо cij=cji и матрица называется симметрической.
Представление в виде матрицы смежностей удобно для тех алгоритмов на графах, которым часто нужно знать, есть ли в графе данное ребро, ибо время, необходимое для определения наличия ребра, фиксировано. Основным преимуществом матрицы смежности является тот факт, что за один шаг можно получить ответ на вопрос "существует ли ребро из v в w?".
Недостаток этого способа заключается в том, что способ пригоден только для простых графов.
2. Массив ребер.
Массив ребер – это массив, в котором ребра хранятся парами вершин, которые они соединяют.
Это наиболее понятный, но достаточно неудобный способ хранения графа. Однако у него есть один большой плюс - при таком способе представления легко вводить дополнительные характеристики ребер. Например, чтобы сохранить веса ребер, достаточно сделать массив размером Mx3 и в дополнительную ячейку для каждого ребра записать его вес.
Например, для графа, приведенного на рис.6 массив ребер будет следующий: (1,2), (1,3), (2,1), (2,4), (2,5), (3,1), (3,2), (3,5), (4,1), (4,2), (4,3), (4,5), (5,2), (5,4).
Если априорно известно, что граф не ориентированный, то включая описание (v, w) не включается описание (w, v).
3. Списки инцидентности.
Для каждой вершины графа создаются три списка:
ü v 0: только неориентированные ребра, инцидентные вершине;
ü v +: исходящие ребра;
ü v -: входящие ребра.
Ели граф ориентирован, то для каждой вершины v достаточно списков v + и v -. Если граф неориентированный, то достаточно списков v 0.
Например,
10: |
(1,2),(1,3) |
1+: |
|
1-: |
|
20: |
(2,1), (2,4), (2,5) |
2+: |
|
2-: |
(3,2) |
30: |
(3,1) |
3+: |
(3,2), (3,5) |
3-: |
(4,3) |
40: |
(4,2), (4,5) |
4+: |
(4,1), (4,3) |
4-: |
|
50: |
(5,4), (5,2) |
5+: |
|
5-: |
(3,5) |