グラフ
ノードとエッジ。最も汎用性の高いデータ構造で、SNS、道路網、依存関係、ニューラルネットワークなど、関係のあるものなら何でもモデル化できる。
有向か無向か、重み付きか否か、閉路を持つか(持たなければDAG)で分類される。表現方法は隣接行列(参照は速いがメモリを食う)と隣接リスト(コンパクトで順次走査向き)。古典的なアルゴリズムはBFS、DFS、ダイクストラ法(最短経路)、A*、最小全域木(クラスカル法/プリム法)、タージャンの強連結成分分解など。Neo4j、Memgraph、TigerGraphのようなグラフデータベースは保存形式そのものをグラフ向けに特化している。ライブラリはPythonのNetworkX、igraph、Boost Graphがよく使われる。