Skip to content

Commit 6af54b0

Browse files
authored
Merge pull request kodecocodes#315 from pixyzehn/feature/enum-lower-camel-case
Update enum case style in Binary Tree
2 parents 24b721a + 95cd773 commit 6af54b0

File tree

3 files changed

+54
-54
lines changed

3 files changed

+54
-54
lines changed

Binary Tree/BinaryTree.playground/Contents.swift

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
//: Playground - noun: a place where people can play
22

33
public indirect enum BinaryTree<T> {
4-
case Node(BinaryTree<T>, T, BinaryTree<T>)
5-
case Empty
4+
case node(BinaryTree<T>, T, BinaryTree<T>)
5+
case empty
66

77
public var count: Int {
88
switch self {
9-
case let .Node(left, _, right):
9+
case let .node(left, _, right):
1010
return left.count + 1 + right.count
11-
case .Empty:
11+
case .empty:
1212
return 0
1313
}
1414
}
@@ -17,9 +17,9 @@ public indirect enum BinaryTree<T> {
1717
extension BinaryTree: CustomStringConvertible {
1818
public var description: String {
1919
switch self {
20-
case let .Node(left, value, right):
20+
case let .node(left, value, right):
2121
return "value: \(value), left = [" + left.description + "], right = [" + right.description + "]"
22-
case .Empty:
22+
case .empty:
2323
return ""
2424
}
2525
}
@@ -28,24 +28,24 @@ extension BinaryTree: CustomStringConvertible {
2828

2929

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

3838
// intermediate nodes on the left
39-
let aMinus10 = BinaryTree.Node(nodeA, "-", node10)
40-
let timesLeft = BinaryTree.Node(node5, "*", aMinus10)
39+
let aMinus10 = BinaryTree.node(nodeA, "-", node10)
40+
let timesLeft = BinaryTree.node(node5, "*", aMinus10)
4141

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

4747
// root node
48-
let tree = BinaryTree.Node(timesLeft, "+", timesRight)
48+
let tree = BinaryTree.node(timesLeft, "+", timesRight)
4949

5050
print(tree)
5151
tree.count // 12
@@ -54,23 +54,23 @@ tree.count // 12
5454

5555
extension BinaryTree {
5656
public func traverseInOrder(process: (T) -> Void) {
57-
if case let .Node(left, value, right) = self {
57+
if case let .node(left, value, right) = self {
5858
left.traverseInOrder(process: process)
5959
process(value)
6060
right.traverseInOrder(process: process)
6161
}
6262
}
6363

6464
public func traversePreOrder(process: (T) -> Void) {
65-
if case let .Node(left, value, right) = self {
65+
if case let .node(left, value, right) = self {
6666
process(value)
6767
left.traversePreOrder(process: process)
6868
right.traversePreOrder(process: process)
6969
}
7070
}
7171

7272
public func traversePostOrder(process: (T) -> Void) {
73-
if case let .Node(left, value, right) = self {
73+
if case let .node(left, value, right) = self {
7474
left.traversePostOrder(process: process)
7575
right.traversePostOrder(process: process)
7676
process(value)

Binary Tree/BinaryTree.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
Nodes don't have a reference to their parent.
55
*/
66
public indirect enum BinaryTree<T> {
7-
case Node(BinaryTree<T>, T, BinaryTree<T>)
8-
case Empty
7+
case node(BinaryTree<T>, T, BinaryTree<T>)
8+
case empty
99

1010
public var count: Int {
1111
switch self {
12-
case let .Node(left, _, right):
12+
case let .node(left, _, right):
1313
return left.count + 1 + right.count
14-
case .Empty:
14+
case .empty:
1515
return 0
1616
}
1717
}
@@ -20,33 +20,33 @@ public indirect enum BinaryTree<T> {
2020
extension BinaryTree: CustomStringConvertible {
2121
public var description: String {
2222
switch self {
23-
case let .Node(left, value, right):
23+
case let .node(left, value, right):
2424
return "value: \(value), left = [" + left.description + "], right = [" + right.description + "]"
25-
case .Empty:
25+
case .empty:
2626
return ""
2727
}
2828
}
2929
}
3030

3131
extension BinaryTree {
3232
public func traverseInOrder(@noescape process: T -> Void) {
33-
if case let .Node(left, value, right) = self {
33+
if case let .node(left, value, right) = self {
3434
left.traverseInOrder(process)
3535
process(value)
3636
right.traverseInOrder(process)
3737
}
3838
}
3939

4040
public func traversePreOrder(@noescape process: T -> Void) {
41-
if case let .Node(left, value, right) = self {
41+
if case let .node(left, value, right) = self {
4242
process(value)
4343
left.traversePreOrder(process)
4444
right.traversePreOrder(process)
4545
}
4646
}
4747

4848
public func traversePostOrder(@noescape process: T -> Void) {
49-
if case let .Node(left, value, right) = self {
49+
if case let .node(left, value, right) = self {
5050
left.traversePostOrder(process)
5151
right.traversePostOrder(process)
5252
process(value)
@@ -56,10 +56,10 @@ extension BinaryTree {
5656

5757
extension BinaryTree {
5858
func invert() -> BinaryTree {
59-
if case let .Node(left, value, right) = self {
60-
return .Node(right.invert(), value, left.invert())
59+
if case let .node(left, value, right) = self {
60+
return .node(right.invert(), value, left.invert())
6161
} else {
62-
return .Empty
62+
return .empty
6363
}
6464
}
6565
}

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)