Skip to content

Commit 95cd773

Browse files
author
Nagasawa Hiroki
committed
Update README in Binary Tree
1 parent 31bc4c3 commit 95cd773

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

Binary Tree/README.markdown

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,33 @@ Here's how you could implement a general-purpose binary tree in Swift:
2020

2121
```swift
2222
public indirect enum BinaryTree<T> {
23-
case Node(BinaryTree<T>, T, BinaryTree<T>)
24-
case Empty
23+
case node(BinaryTree<T>, T, BinaryTree<T>)
24+
case empty
2525
}
2626
```
2727

2828
As an example of how to use this, let's build that tree of arithmetic operations:
2929

3030
```swift
3131
// leaf nodes
32-
let node5 = BinaryTree.Node(.Empty, "5", .Empty)
33-
let nodeA = BinaryTree.Node(.Empty, "a", .Empty)
34-
let node10 = BinaryTree.Node(.Empty, "10", .Empty)
35-
let node4 = BinaryTree.Node(.Empty, "4", .Empty)
36-
let node3 = BinaryTree.Node(.Empty, "3", .Empty)
37-
let nodeB = BinaryTree.Node(.Empty, "b", .Empty)
32+
let node5 = BinaryTree.node(.empty, "5", .empty)
33+
let nodeA = BinaryTree.node(.empty, "a", .empty)
34+
let node10 = BinaryTree.node(.empty, "10", .empty)
35+
let node4 = BinaryTree.node(.empty, "4", .empty)
36+
let node3 = BinaryTree.node(.empty, "3", .empty)
37+
let nodeB = BinaryTree.node(.empty, "b", .empty)
3838

3939
// intermediate nodes on the left
40-
let Aminus10 = BinaryTree.Node(nodeA, "-", node10)
41-
let timesLeft = BinaryTree.Node(node5, "*", Aminus10)
40+
let Aminus10 = BinaryTree.node(nodeA, "-", node10)
41+
let timesLeft = BinaryTree.node(node5, "*", Aminus10)
4242

4343
// intermediate nodes on the right
44-
let minus4 = BinaryTree.Node(.Empty, "-", node4)
45-
let divide3andB = BinaryTree.Node(node3, "/", nodeB)
46-
let timesRight = BinaryTree.Node(minus4, "*", divide3andB)
44+
let minus4 = BinaryTree.node(.empty, "-", node4)
45+
let divide3andB = BinaryTree.node(node3, "/", nodeB)
46+
let timesRight = BinaryTree.node(minus4, "*", divide3andB)
4747

4848
// root node
49-
let tree = BinaryTree.Node(timesLeft, "+", timesRight)
49+
let tree = BinaryTree.node(timesLeft, "+", timesRight)
5050
```
5151

5252
You need to build up the tree in reverse, starting with the leaf nodes and working your way up to the top.
@@ -57,10 +57,10 @@ It will be useful to add a `description` method so you can print the tree:
5757
extension BinaryTree: CustomStringConvertible {
5858
public var description: String {
5959
switch self {
60-
case let .Node(left, value, right):
60+
case let .node(left, value, right):
6161
return "value: \(value), left = [" + left.description + "], right = ["
6262
+ right.description + "]"
63-
case .Empty:
63+
case .empty:
6464
return ""
6565
}
6666
}
@@ -92,9 +92,9 @@ Another useful method is counting the number of nodes in the tree:
9292
```swift
9393
public var count: Int {
9494
switch self {
95-
case let .Node(left, _, right):
95+
case let .node(left, _, right):
9696
return left.count + 1 + right.count
97-
case .Empty:
97+
case .empty:
9898
return 0
9999
}
100100
}
@@ -112,23 +112,23 @@ Here is how you'd implement that:
112112

113113
```swift
114114
public func traverseInOrder(process: (T) -> Void) {
115-
if case let .Node(left, value, right) = self {
115+
if case let .node(left, value, right) = self {
116116
left.traverseInOrder(process: process)
117117
process(value)
118118
right.traverseInOrder(process: process)
119119
}
120120
}
121121

122122
public func traversePreOrder(process: (T) -> Void) {
123-
if case let .Node(left, value, right) = self {
123+
if case let .node(left, value, right) = self {
124124
process(value)
125125
left.traversePreOrder(process: process)
126126
right.traversePreOrder(process: process)
127127
}
128128
}
129129

130130
public func traversePostOrder(process: (T) -> Void) {
131-
if case let .Node(left, value, right) = self {
131+
if case let .node(left, value, right) = self {
132132
left.traversePostOrder(process: process)
133133
right.traversePostOrder(process: process)
134134
process(value)

0 commit comments

Comments
 (0)