Skip to content

Instantly share code, notes, and snippets.

@davidinga
Created June 7, 2019 19:57
Show Gist options
  • Select an option

  • Save davidinga/0160f7568e29613275457836e9c55fed to your computer and use it in GitHub Desktop.

Select an option

Save davidinga/0160f7568e29613275457836e9c55fed to your computer and use it in GitHub Desktop.
Traverses a binary tree data structure.
extension BinaryTree {
public func traverseInOrder() {
if case let .node(left, right, value) = self {
left.traverseInOrder()
print(value + " ", terminator: "")
right.traverseInOrder()
}
}
public func traversePreOrder() {
if case let .node(left, right, value) = self {
print(value + " ", terminator: "")
left.traversePreOrder()
right.traversePreOrder()
}
}
public func traversePostOrder() {
if case let .node(left, right, value) = self {
left.traversePostOrder()
right.traversePostOrder()
print(value + " ", terminator: "")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment