Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
12.03.2015
Размер:
152.58 Кб
Скачать

4. Матрица инцидентности – это прямоугольная матрица размерности n*r (n – число

вершин, r – число ребер).

Для неориентированного графа элемент матрицы:

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

0, если i-я вершина не инцидентна j-му ребру.

11

Для орграфа элемент матрицы инцидентности:

-1, если j-я дуга выходит из i-й вершины mi[i][j] = 1, если j-я дуга входит в i-ю вершину

2, если j-я дуга – петля i-й вершины,

0, если i-я вершина не инцидентна j-й дуге.

12

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

#define

NMAX

10

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

#define

RMAX

100

/* макс. число ребер (дуг) */

int mi[NMAX][ RMAX]; /* м-ца инцидентности */

int

n;

 

 

/* число вершин */

int

r;

 

 

/*число ребер */

13

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

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

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

14

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

#define

NMAX 10

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

int vsm[NMAX][ NMAX+1];

/* векторы смежности */

int n;

 

/* число вершин */

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

15

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

Пример.

Введите число вершин: 4 Введите номера смежных вершин

0:1 3 -1

1:0 2 3 -1

2:1 -1

3:0 1 -1

16

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

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

17

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

#define

NMAX 10

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

/* тип элемента списка */

struct LIST

 

{ int v;

/* вершина */

struct LIST *next;

/* ссылка на следующий

 

элемент */

};

 

struct LIST *p [NMAX];

/* массив указателей списков

 

смежности */

int n;

/* число вершин */

18

Соседние файлы в папке Презентация лекций (3 семестр)