## graphs
* graph is a non-linear data structure consisting of vertices and edges.
* in **undirected graphs**, the edges between any two vertices do not have a direction, indicating a two-way relationship.
* in **directed graphs**, the edges between any two vertices are directional.
* in **weighted graphs**, each edge has an associated weight. if the sum of the weights of all edges of a cycle is a negative values, it's a negative weight cycle.
* the **degree of a vertex** is the number of edges connecting the vertex. in directed, graphs, if the **in-dregree** of a vertex is d, there are **d** directional edges incident to the vertex (and similarly, **out-degree** from the vertex).
---
### traversals
* check **[../trees/#breath-first-search](https://github.com/go-outside-labs/master-python-with-algorithms-py/tree/master/trees#breath-first-search)**
* and **[../trees/#depth-first-search](https://github.com/go-outside-labs/master-python-with-algorithms-py/tree/master/trees#depth-first-search)**