Gunma 0.2.0

Gunma 0.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2015年11月
SPM支持 SPM

Soutaro Matsumoto 维护。



Gunma 0.2.0

  • Soutaro Matsumoto

Gunma

Gunma 是一个 Swift 的图形库。它提供了基本的图形结构和强连通分量和拓扑排序的实施。

// From https://en.wikipedia.org/wiki/Strongly_connected_component

var graph = Graph<String>()

graph.addVertex("a")
graph.addVertex("b")
graph.addVertex("c")
graph.addVertex("d")
graph.addVertex("e")
graph.addVertex("f")
graph.addVertex("g")
graph.addVertex("h")

graph.addEdge(from: "a", to: "b")
graph.addEdge(from: "b", to: "c")
graph.addEdge(from: "b", to: "f")
graph.addEdge(from: "b", to: "e")
graph.addEdge(from: "c", to: "d")
graph.addEdge(from: "c", to: "g")
graph.addEdge(from: "d", to: "c")
graph.addEdge(from: "d", to: "h")
graph.addEdge(from: "e", to: "a")
graph.addEdge(from: "e", to: "f")
graph.addEdge(from: "f", to: "g")
graph.addEdge(from: "g", to: "f")
graph.addEdge(from: "h", to: "d")
graph.addEdge(from: "f", to: "g")

// New graph for strongly connected components of graph
let scc: Graph<Set<String>> = Graph.stronglyConnectedComponents(graph)

// List of topologically sorted vertices
let array: [String] = try Graph.topologicalSort(graph)

作者

Soutaro Matsumoto [email protected]