Структура данных графа и Algorithms (Пример)

Что такое граф в структуре данных?

Граф — это нелинейная структура данных, состоящая из вершин и ребер, где вершины содержат информацию или данные, а ребра работают как связующее звено между парой вершин.

Он используется для решения реальных текстовых задач, таких как поиск наилучшего маршрута к месту назначения, а также маршрута для телекоммуникаций и социальных сетей. Пользователи считаются узлом в графике, а провода — это ребра, соединяющие пользователей.

Если ребра представлены как E, а вершины представлены как V, то граф G можно записать как набор вершин и ребер, например G (V, E)

Пример графика в структуре данных

Вот простой пример структуры данных графа:

Пример графика в структуре данных

Это простой неориентированный граф (один из видов графов). Здесь набор вершин: {A, B, C,D,E,F}. Две вершины создают ребро. Например, A и B связаны ребром. Однако A и F не связаны никакими ребрами.

Графовая терминология в структуре данных

Ниже приведены некоторые важные термины, используемые в структуре данных графа:

Срок Описание
Вершина Любой элемент данных называется вершиной или узлом. На изображении выше A, B, C, D и E — вершины.
Край (Дуга) Соединяющие связи между двумя узлами или вершинами называются ребрами (дугами). Он имеет два конца и обозначается как (startingVertex, endVertex).
Ненаправленный край Это двунаправленный край.
Направленный край Это однонаправленная грань.
Взвешенное преимущество Край, имеющий ценность.
Степень В Graph количество ребер, соединенных с вершиной, называется степенью.
Инградус Общее количество входящих ребер, соединенных с вершиной.
Выходящая степень Общее количество исходящих ребер, соединенных с вершиной.
Автопетля Ребро называется петлей, если две его конечные точки совпадают.
Смежность Вершины называются смежными, если ребро соединено.

Типы графов в структуре данных

Вот список наиболее распространенных типы графиков в структуре данных:

  • Направленный график
  • Ненаправленный граф
  • Взвешенный график
  • Двунаправленный граф
  • Бесконечный граф
  • Нулевой график
  • Тривиальный граф
  • Мультиграф
  • Полный график
  • Связанный граф
  • Циклический график
  • Направленный ациклический граф (DAG)
  • График цикла
  • Двудольный граф
  • Граф Эйлера
  • График Гамильтона

Применение структуры данных графа

График имеет множество вариантов использования. Существует множество алгоритмов, которые часто используют графы. Вот некоторые из применений Graph:

  • Карты Google используют графики, чтобы найти пересечение двух дорог и рассчитать расстояние между двумя местами.
    Например, Дейкстра, для поиска кратчайшего расстояния между источником и местом назначения.
  • Facebook использует Graphs, чтобы найти общего друга пользователей. Его алгоритм рассматривает каждого пользователя как узел графа.
  • Для распределения ресурсов используется DAG (Direct Acyclic Graph). Он проверяет зависимость ресурсов.
  • Поисковая система Google использует графики для создания рейтинга веб-сайтов.
  • Устройство отображения использует структуру данных графа.
  • Маршрутизатор и протокол t использует Graph для изучения пути назначения.