Skip to content

Instantly share code, notes, and snippets.

@zntfdr
Created February 13, 2016 04:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zntfdr/8c1848022a4762377c19 to your computer and use it in GitHub Desktop.
Save zntfdr/8c1848022a4762377c19 to your computer and use it in GitHub Desktop.
struct Path: Comparable {
let cumulativeWeight: Int
let lastNode: Node
let previousPath: Path?
init(toNode: Node, viaConnection: Connection?=nil, viaPath: Path?=nil) {
if let
previousPath = viaPath,
lastConnection = viaConnection {
self.cumulativeWeight = lastConnection.weight + previousPath.cumulativeWeight
} else {
self.cumulativeWeight = 0
}
self.lastNode = toNode
self.previousPath = viaPath
}
}
func ==(x: Path, y: Path) -> Bool {
return x.cumulativeWeight == y.cumulativeWeight
}
func <(x: Path, y: Path) -> Bool {
return x.cumulativeWeight < y.cumulativeWeight
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment