### 8 releases (4 breaking)

0.6.0 | Sep 7, 2015 |
---|---|

0.5.1 | May 25, 2015 |

0.5.0 | Mar 30, 2015 |

0.4.1 | Mar 28, 2015 |

0.2.1 | Mar 24, 2015 |

#**344** in Data structures

**45** downloads per month

Used in **1** crate

**MIT**license

38KB

578 lines

# Graph search

is a simple graph library for the rust programming language.
`graphsearch`

can be used for basic representation and manipulation of
graph structures. At the
moment featureset is quite limited.`graphsearch`

## Organization

**README.md**- The document you are currently reading.**Cargo.toml**- The cargo definition for this package.**src/lib.rs**- The actual implementation of this library.

## Features

- Graphs with vertex costs
- Breadth first search
- Depth first search
- Dijkstra's algorithm

## Usage example

Here's a short basic example of using this library as an external crate:

`extern` `crate` graphsearch`;`
`use` `graphsearch``::``{`Graph`,` Node`,` Vertex`}``;`
`fn` `main``(``)`` ``{`
`let` testgraph `=` `vec!``[`Node`{`content`:` `"`Helsinki`"``,`
adjacent`:` `vec!``[`Vertex`{`cost`:` `20``,` node`:` `1``}``,`
Vertex`{`cost`:` `50``,` node`:` `2``}``]``}``,`
Node`{`content`:` `"`Turku`"``,`
adjacent`:` `vec!``[`Vertex`{`cost`:` `30``,` node`:``2``}``]``}``,`
Node`{`content`:` `"`Tampere`"``,`
adjacent`:` `Vec``::`new`(``)``}``]``;`
`let` start`:` `usize` `=` `0``;`
`let` target `=` `"`Tampere`"``;`
`let` g `=` `Graph``::`new`(`testgraph`)``;`
`let` res `=` g`.``search``(`start`,` target`)``;` `//` uses dijkstras algorithm
`match` res `{`
`None` `=>` `{`
`println!``(``"`Search returned None`"``)``;`
`}`
`Some``(`result`)` `=>` `{`
`println!``(``"`Search returned a path: `{:?}``"``,` result`)``;`
`println!``(``"`The returned path cost: `{}``"``,` g`.``cost_of_path``(``&`result`)``)``;`
`}`
`}`
`}`

## License

This project is licensed under the MIT license, a copy of which can be found in the LICENCE file.