MoonTools.Graph/README.md

29 lines
975 B
Markdown
Raw Permalink Normal View History

2020-02-21 02:43:25 +00:00
# MoonTools.Graph
2019-10-24 00:36:42 +00:00
2020-02-21 02:43:25 +00:00
[![NuGet Badge](https://buildstats.info/nuget/MoonTools.Graph)](https://www.nuget.org/packages/MoonTools.Graph/)
2020-02-23 03:18:25 +00:00
[![Build Status](https://drone.moonside.games/api/badges/MoonsideGames/MoonTools.Graph/status.svg)](https://drone.moonside.games/MoonsideGames/MoonTools.Graph)
2019-10-29 22:01:03 +00:00
2019-10-24 00:36:42 +00:00
A GC-friendly graph theory library for C# intended for use with games.
## Usage
2019-10-24 05:33:19 +00:00
`Graph` implements various algorithms on the following graph structures:
2019-10-24 00:36:42 +00:00
* Directed
* Directed Weighted
* Directed Weighted Multigraph
* Undirected
2019-10-24 04:29:26 +00:00
* Undirected Weighted
2019-10-24 00:36:42 +00:00
## Notes
2019-10-24 05:34:13 +00:00
`Graph` algorithms return lazy enumerators to avoid creating GC pressure. If you wish to hang on to the results of an evaluation, make sure to call `ToArray()` or `ToList()` on the IEnumerable.
### TODO
2019-10-24 08:10:49 +00:00
* change Neighbors tests to use Equal instead of Contains
* change Edge id from a Guid to an integer index on the edge
2019-10-24 05:34:13 +00:00
* Prim Minimum Spanning Tree
* Kruskal Minimum Spanning Tree
2020-02-21 02:43:25 +00:00
* Undirected Weighted Multigraph