logo

Граф та його зображення

Що таке структура даних графіка?

А Графік це нелінійна структура даних, що складається з вершин і ребер. Вершини іноді також називають вузлами, а ребра — лініями або дугами, які з’єднують будь-які два вузли в графі. Більш формально, граф складається з набору вершин ( IN ) і набір ребер ( І ). Графік позначено G(V, E) .

Зображення графа

Ось два найпоширеніші способи представлення графіка:

  1. Матриця суміжності
  2. Список суміжності

Матриця суміжності

Матриця суміжності — це спосіб представлення графа як матриці логічних значень (0 і 1).



Припустимо, що є п вершини в графі Отже, створіть 2D матрицю adjMat[n][n] має розмір n x n.

  • Якщо є ребро від вер i до j , знак adjMat[i][j] як 1 .
  • Якщо ребра від вершини немає i до j , знак adjMat[i][j] як 0 .

Представлення неорієнтованого графа в матриці суміжності:

На малюнку нижче показано неорієнтований граф. Спочатку ініціалізується вся Матриця 0 . Якщо є межа від джерела до місця призначення, ми вставляємо 1 в обох випадках ( adjMat[пункт призначення] і adjMat [ призначення]) тому що ми можемо піти будь-яким шляхом.

Undirected_to_Adjacency_matrix

Неорієнтований граф до матриці суміжності

Представлення орієнтованого графа в матрицю суміжності:

На малюнку нижче показано спрямований граф. Спочатку ініціалізується вся Матриця 0 . Якщо є межа від джерела до місця призначення, ми вставляємо 1 для цього конкретного adjMat[пункт призначення] .

Спрямована_до_матриці_суміжності

Орієнтований граф до матриці суміжності

Список суміжності

Масив списків використовується для зберігання ребер між двома вершинами. Розмір масиву дорівнює кількості вершини (тобто n) . Кожен індекс у цьому масиві представляє певну вершину в графі. Запис за індексом i масиву містить пов’язаний список, що містить вершини, які є суміжними з вершиною i .

Припустимо, що є п вершини в графі Отже, створіть масив списку розміру п як adjList[n].

  • adjList[0] матиме всі вузли, які підключені (сусідні) до вершини 0 .
  • adjList[1] матиме всі вузли, які підключені (сусідні) до вершини 1 і так далі.

Представлення неорієнтованого графа в списку суміжності:

Наведений нижче неорієнтований граф має 3 вершини. Отже, буде створено масив списку розміром 3, де кожен індекс представляє вершини. Тепер вершина 0 має двох сусідів (тобто 1 і 2). Отже, вставте вершини 1 і 2 в індекси 0 масиву. Аналогічно, для вершини 1 вона має двох сусідів (тобто 2 і 0). Отже, вставте вершини 2 і 0 в індекси 1 масиву. Аналогічно для вершини 2 вставте її сусідів у масив списку.

Graph-Representation-of-Undirected-graph-to-Ajacency-List

Неорієнтований граф до списку суміжності

Представлення спрямованого графа в список суміжності:

Орієнтований нижче граф має 3 вершини. Отже, буде створено масив списку розміром 3, де кожен індекс представляє вершини. Тепер вершина 0 не має сусідів. Для вершини 1 вона має двох сусідів (тобто 0 і 2). Отже, вставте вершини 0 і 2 в індекси 1 масиву. Аналогічно для вершини 2 вставте її сусідів у масив списку.

Graph-Representation-of-Directed-graph-to-Ajacency-List

Спрямований граф до списку суміжності