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 中使用

MIT 许可证

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 文件中找到副本。

无运行时依赖