Что такое граф

«Что такое граф» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Типы графов:

  • Ориентированные — рёбра имеют направление (A → B ≠ B → A).
  • Неориентированные — рёбра без направления (A—B = B—A).
  • Взвешенные — рёбрам присвоены значения (например, стоимость пути).

Пример на Go:

type Graph struct {
    vertices map[int][]int // вершина -> список смежных вершин
}

func (g *Graph) addEdge(src, dest int) {
    g.vertices[src] = append(g.vertices[src], dest)
}

func main() {
    g := Graph{vertices: make(map[int][]int)}
    g.addEdge(1, 2)
    g.addEdge(2, 3)
}