Графы презентация

Содержание

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Граф – это множество вершин и соединяющих их ребер. Примеры графов:

Слайд 1Лекция 6
Графы


Слайд 2Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Граф – это

множество вершин и соединяющих их ребер.
Примеры графов:

Слайд 3Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
Примеры графов:
Схема алгоритма

– размеченный орграф, где вершинами являются блоки алгоритма, а дугами – линии передачи управления.

Система дорог – взвешенный размеченный граф, где вершины – города, а ребра – дороги между городами. Вес ребра – длина дороги, метка вершины – название города. Если дороги односторонние, то граф – ориентированный.

Слайд 4Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
Представление графов
1.

Последовательность ребер (дуг), перед которой указывается количество вершин графа. Каждое ребро (дуга) задается парой смежных вершин. Такая форма удобна для внешнего представления графа при его вводе.

Пример:

5 - число вершин
0 1
1 2
2 3
2 4
3 4
4 0
4 2

Слайд 5Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Если в таком

виде хранить граф в памяти, нужно описать два параллельных массива для хранения смежных вершин.

Например:



#define NMAX 10 /* макс. число вершин */
#define RMAX 100 /* макс. число ребер */
int v1 [RMAX]; /* массивы смежных */
int v2 [RMAX]; /* вершин */
int n; /* число вершин графа */
int r; /* число ребер графа */

Слайд 6Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

2. Матрица смежности

– это квадратная матрица размерности n*n (n – число вершин), в которой элемент
ms[i][j] = 1, ли есть дуга i –> j , и = 0 в противном случае.



Пример матрицы смежности для графа, представленного на рис. а):

| 0 1 2 3 4 5
--------------------
0 | 0 1 0 0 0 1 Для неориентированного графа матрица
1 | 1 0 1 1 1 0 смежности симметрична относительно
2 | 0 1 0 0 0 0 главной диагонали.
3 | 0 1 0 0 1 1
4 | 0 1 0 1 0 0
5 | 1 0 0 1 0 0

Слайд 7Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Пример ввода неориентированного

графа в виде последовательности ребер и формирования матрицы смежности.


#define NMAX 10 /* макс. число вершин */
/* Функция ввода графа */
int VvodGraf ( int ms [NMAX] [NMAX] )
/* ms – матрица смежности */
/* Возвращаемое значение – число вершин графа */
{ int n; /* число вершин графа */
int i, j; /* номера вершин */
puts (“\nВведите число вершин графа (<=10)”);
scanf (“%d”, &n);

Слайд 8Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ


/* Обнуление матрицы

смежности */
for (i=0; i for (j=0; j puts (“Введите последовательность ребер, завершив ввод ”);


puts (“нажатием Ctrl-Z”);
while (scanf(“%d %d”, &i,&j) !=EOF)
ms[i][j] = ms[j][i] = 1;
return n;
}
/* Главная функция */
void main()
{ int g[NMAX][ NMAX] ; /* матрица смежности */
int n; /* число вершин графа */

n = VvodGraf (g); /* вызов ф-ции ввода графа */

}

Слайд 9Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

3. Матрица весов

– квадратная матрица размерности n*n (n – число вершин), в которой элемент
mw [i][j] = вес дуги i –> j
Например, дана система дорог: вершины – города, ребра – дороги. Вес ребра – длина дороги.

Слайд 10Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Описание на языке

С:

#define NMAX 10 /* макс. число вершин */
int mw[NMAX][ NMAX] ; /* матрица весов */
int n; /* число вершин */

Слайд 11Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ


4. Матрица инцидентности

– это прямоугольная матрица размерности n*r (n – число вершин, r – число ребер).



Для неориентированного графа элемент матрицы:
1, если i-я вершина инцидентна j-му ребру,
mi[i][j] = 2, если j-е ребро – петля i-й вершины,
0, если i-я вершина не инцидентна j-му ребру.



Слайд 12Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Для орграфа

элемент матрицы инцидентности:
-1, если j-я дуга выходит из i-й вершины
mi[i][j] = 1, если j-я дуга входит в i-ю вершину
2, если j-я дуга – петля i-й вершины,
0, если i-я вершина не инцидентна j-й дуге.



Слайд 13Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Описание на языке

С:

#define NMAX 10 /* макс. число вершин */
#define RMAX 100 /* макс. число ребер (дуг) */
int mi[NMAX][ RMAX]; /* м-ца инцидентности */
int n; /* число вершин */
int r; /*число ребер */

Слайд 14Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

5. Векторы смежности

.

Для каждой вершины в векторе хранятся номера смежных с ней вершин.

Векторы смежности:


Слайд 15Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Описание на языке

С:

#define NMAX 10 /* макс. число вершин */
int vsm[NMAX][ NMAX+1]; /* векторы смежности */
int n; /* число вершин */

Число столбцов матрицы vsm равно NMAX+1, так как последовательность смежных вершин в каждой строке матрицы удобно хранить с признаком конца, например -1. vsm[i] – вектор смежности для i-й вершины.



Слайд 16Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ


Эта форма представления

графа может быть использована и для ввода графа.


Пример.
Введите число вершин: 4
Введите номера смежных вершин
0: 1 3 -1
1: 0 2 3 -1
2: 1 -1
3: 0 1 -1

Слайд 17Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

6. Списки смежности

.
Для каждой вершины хранится список смежных с ней вершин.



Слайд 18Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ

Описание на языке

С:

#define NMAX 10 /* макс. число вершин */



/* тип элемента списка */
struct LIST
{ int v; /* вершина */
struct LIST *next; /* ссылка на следующий элемент */
}
struct LIST *p [NMAX]; /* массив указателей списков смежности */
int n; /* число вершин */

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика