Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры данных.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.58 Mб
Скачать
  1. Элементарные алгоритмы для работы с графами

    Основные определения (ориентированный/неориентированный граф, входящая/исходящая степень вершины, инцидентность ребра вершине, петли, кратные ребра и т.п.)

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

неориентированный граф (кратко орграф) — (мульти) граф, рёбрам которого не присвоено направление.

Степень вершины (англ. degree, также валентность, англ. valency) в теории графов — количество рёбер графа инцидентных вершине  . При подсчёте степени ребро-петля учитывается дважды.[1] Степень вершины обозначается как 

Входящая степень вершины v это количество ребер вида (i, v), то есть количество ребер которые «входят» в v. Исходящая степень вершины v это количество ребер вида (v , i), то есть количество ребер которые «выходят» из v

Кратные рёбра — несколько рёберинцидентных одной и той же паре вершин. Встречаются в мультиграфах.

  • Петля — ребро, начало и конец которого находятся в одной и той же вершине.

    Списки смежности (структура, объем памяти, время доступа к ребру, для каких графов эффективнее)

Данный способ представления больше подходит для разреженных графов, то есть графов у которых количество рёбер гораздо меньше чем количество вершин в квадрате (|E| << |V|2). В данном представлении используется массив Adj содержащий |V| списков. В каждом списке Adj[v] содержатся все вершины u, так что между v и u есть ребро. Память требуемая для представления равна O (|E| + |V|) что является лучшим показателем чем матрица смежности для разреженных графов. Главный недостаток этого способа представления в том, что нет быстрого способа проверить существует ли ребро (u, v). 

    Матрица смежности (структура, объем памяти, время доступа к ребру, для каких графов эффективнее)

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

Матрица смежности графа G с конечным числом вершин n (пронумерованных числами от 1 до n) — это квадратная матрица A размера n, в которой значение элемента aij равно числу рёбер из i-й вершины графа в j-ю вершину.

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

Время доступа O(n)

    Поиск в ширину (алгоритм, время работы, поиск кратчайшего пути в невзвешенном графе)

Работа алгоритма[править | править вики-текст]

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

Рассмотрим все рёбра  , выходящие из узла  . Если очередной узел   является целевым узлом, то поиск завершается; в противном случае узел   добавляется в очередь. После того, как будут проверены все рёбра, выходящие из узла  , из очереди извлекается следующий узел  , и процесс повторяется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]