Список смежности
Перейти к навигации
Перейти к поиску

Список смежности — один из способов представления графа в виде коллекции списков вершин. Каждой вершине графа соответствует список, состоящий из «соседей» этой вершины.
Особенности реализации
| Граф на картинке наверху имеет следующий список смежности: | ||
| a | смежно к | b, c |
| b | смежно к | a, c |
| c | смежно к | a, b |
Есть несколько вариаций представления графа списком смежности, отличающихся особенностями ассоциации вершин и коллекциями соседей, реализацией коллекций, включаются ли рёбра и вершины в коллекции соседей или только вершины, способами представления рёбер и вершин.
- Реализация, предложенная Гвидо ван Россумом, использует хеш-таблицу для ассоциации каждой вершины со списком смежных вершин. Нет явного представления рёбер в этой структуре[1][2].
- Кормен и другие предложили реализацию, в которой вершины представлены числовым индексом в массиве, в котором каждая ячейка массива ссылается на однонаправленный связанный список соседних вершин.[3]
- Объектно-ориентированный список смежности, предложенный Шаблон:Нп3 и Шаблон:Нп3, содержит специальные классы вершин и рёбер. Каждый объект вершины содержит ссылку на коллекцию рёбер. Каждый объект ребра содержит ссылки на исходящую и входящую вершины.[4]
Сравнение с матрицей смежности
| Сравнение с матрицей смежности | ||
| Операция | Список смежности | Матрица смежности |
| Проверка на наличие ребра (x,y) | ||
| Определение степени вершины | ||
| Использование памяти для разреженных графов | ||
| Вставка/удаление граниШаблон:Нет АИ | ||
| Обход графа | ||