Алгоритмы и программирование
Пятница, 27.06.2025, 13:47
Приветствую Вас Гость | RSSГлавная | Регистрация | Вход
Меню сайта
Полезные сайты
  • Алгоритмы и методы
  • Algolib
  • Boost
  • MAXimal
  • Математика, кибернетика, программирование
  • Форма входа
    Категории раздела
    Статьи о библиотеках и дополнениях [1]
    Общие [0]
    FAQ [0]
    Алгоритмы [1]
    Поиск
    Главная » Статьи » Алгоритмы

    Способы представления графов

    Способы представления графов

    Имеется два стандартных способа представления графа G = (V,E): как набора списков смежных вершин или как матрицы смежности. Оба способа применимы как для ориентированных, так и для неориентированных графов.

    Представление с помощью списка смежности обеспечивает более компактное представление разреженных графов
    (у которых |E| много меньше |V|^2). Представление при помощи матрицы смежности предпочтительнее в случае
    плотных графов (когда |E| близко |V|^2) или когда необходима возможность быстро определить, имеется ребро,
    соединяющее две данных вершины.

    Например:
    Представление в виде списка смежности

    Представление в виде списка смежности для приведенного примера выглядит следующим образом:
    1 | -> 2 -> 5
    2 | -> 1 -> 3 -> 4 -> 5
    3 | -> 2 -> 4
    4 | -> 2 -> 3 -> 5
    5 | -> 1 -> 2 -> 4

    Представление графа массив |V| списков, по одному для каждой вершины. Для каждой вершины u из V список содержит все вершины v, такие что (u, v) принадлежат Е, т.е. список состоит из всех вершин, смежных с u. Вершины в каждом списке обычно хранятся в произвольном порядке. Как для ориентированных, так и для неориентированных графов представление в виде списков требует объем памяти, равный O(V + E).

    Представление в виде матрицы смежности:
    —————-
    | 0 1 0 0 1 |
    | 1 0 1 1 1 |
    | 0 1 0 1 0 |
    | 0 1 1 0 1 |
    | 1 1 0 1 0 |
    —————–

    Предполагается, что вершины пронумерованы в некотором порядке 1, 2, …, |V|. В таком случае представление графа представляет собой матрицу размером |V| x |V|, такую что:

    A[i][j] = 1 - если есть ребро от i до j (или наоборот, если граф неориентированный).
    A[i][j] = 0 - в противном случае.

    Категория: Алгоритмы | Добавил: Admin (02.10.2009)
    Просмотров: 4439 | Комментарии: 1 | Рейтинг: 3.3/3
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Наш опрос
    Какой алгоритм сортировки вы предпочитаете?
    Всего ответов: 15
    Статистика
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Locations of visitors to this page


    Copyright Quaternion © 2025