8 个版本 (4 个重大更改)
使用旧的 Rust 2015
0.6.0 | 2015 年 9 月 7 日 |
---|---|
0.5.1 | 2015 年 5 月 25 日 |
0.5.0 | 2015 年 3 月 30 日 |
0.4.1 | 2015 年 3 月 28 日 |
0.2.1 | 2015 年 3 月 24 日 |
#2430 in 数据结构
在 parapet 中使用
38KB
578 行
图搜索
graphsearch
是 Rust 编程语言的一个简单的图库。 graphsearch
可用于基本表示和操作 图结构。 目前功能集相当有限。
组织
- README.md - 你现在正在阅读的文档。
- Cargo.toml - 此包的 cargo 定义。
- src/lib.rs - 此库的实际实现。
功能
- 具有顶点成本的图
- 广度优先搜索
- 深度优先搜索
- 迪杰斯特拉算法
使用示例
以下是一个使用此库作为外部 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));
}
}
}
许可证
本项目采用 MIT 许可证,可在 LICENCE 文件中找到副本。