47 lines
3.5 KiB
Markdown
47 lines
3.5 KiB
Markdown
---
|
||
title: Graphs
|
||
localeTitle: диаграммы
|
||
---
|
||
## диаграммы
|
||
|
||
График - это структура данных, которую вы можете использовать для решения проблем маршрутизации, таких как «Связаны ли эти два компонента?» и «Каков самый короткий путь от точки a до b?»
|
||
|
||
Граф состоит из узлов и ребер. Узел (т.е. вершина) является объектом вашего графика. Узел может содержать информацию, такую как имя узла и к каким кромкам он привязан. Кромка - это связь, соединяющая два узла. Край может содержать информацию, такую как вес края. Если два узла соединены ребром, они являются соседями (то есть смежными).
|
||
|
||
В зависимости от проблемы вы можете использовать двусторонние (неориентированные) или односторонние (направленные) ребра. Если у вас есть неориентированный край от a до b, есть также путь от b до a. Если у вас есть направленное ребро от a до b, не обязательно будет край от b до a.
|
||
|
||
Графики можно использовать для формулирования таких ситуаций, как:
|
||
|
||
* Географические карты
|
||
* Каждый город в вашей стране является узлом
|
||
* Если два города связаны дорогой, между ними есть край \* Дороги могут быть одно- или двухсторонними (как направленными, так и неориентированными краями) \* вес может быть длиной дороги
|
||
* Поток воды
|
||
* Каждый шлюз является узлом
|
||
* Каждый канал - это край
|
||
* вода будет течь только в одном направлении, так что края направлены
|
||
* вес может быть максимальной водной емкостью потока
|
||
|
||
Пример: график, который имеет узлы столиц северных стран и как (неориентированные) края, расстояние до городов, связанных прямой дорогой.
|
||
```
|
||
. +---------+
|
||
. |Reykjavik|
|
||
. +---------+
|
||
.
|
||
.
|
||
. 529 km +---------+ 1760 km +--------+
|
||
. +------------+|Stockholm|+---------+|Helsinki|
|
||
. | +---------+ +--------+
|
||
. + +
|
||
. +----+ 1991 km |
|
||
. |Oslo|+-------------------------------------+
|
||
. +----+
|
||
. +----------+
|
||
. |Copenhagen|
|
||
. +----------+
|
||
```
|
||
|
||
#### Дополнительная информация:
|
||
|
||
[Первый поиск Breadth (BFS)](https://github.com/freecodecamp/guides/tree/master/src/pages/algorithms/graph-algorithms/breadth-first-search/index.md)
|
||
|
||
[Глубина первого поиска (DFS)](https://github.com/freecodecamp/guides/tree/master/src/pages/algorithms/graph-algorithms/depth-first-search/index.md) |