Skip to content

Commit 87d798d

Browse files
author
Chris Pilcher
committed
Changed simple example to used node.visited flag instead of storing separate "seenNodes" list
1 parent 111469c commit 87d798d

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

Breadth-First Search/BreadthFirstSearch.playground/Pages/Simple example.xcplaygroundpage/Contents.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
func breadthFirstSearch(graph: Graph, source: Node) {
2-
var seenNodes = [source]
32
var queue = Queue<Node>()
43
queue.enqueue(source)
54

@@ -9,9 +8,9 @@ func breadthFirstSearch(graph: Graph, source: Node) {
98
let current = queue.dequeue()!
109
for edge in current.neighbors {
1110
let neighborNode = edge.neighbor
12-
if !seenNodes.contains(neighborNode) {
11+
if !neighborNode.visited {
1312
queue.enqueue(neighborNode)
14-
seenNodes.append(neighborNode)
13+
neighborNode.visited = true
1514
print(neighborNode.label)
1615
}
1716
}

Breadth-First Search/README.markdown

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ Simple implementation of breadth-first search using a queue:
5959

6060
```swift
6161
func breadthFirstSearch(graph: Graph, source: Node) {
62-
var seenNodes = [source]
6362
var queue = Queue<Node>()
6463
queue.enqueue(source)
6564

@@ -69,9 +68,9 @@ func breadthFirstSearch(graph: Graph, source: Node) {
6968
let current = queue.dequeue()!
7069
for edge in current.neighbors {
7170
let neighborNode = edge.neighbor
72-
if !seenNodes.contains(neighborNode) {
71+
if !neighborNode.visited {
7372
queue.enqueue(neighborNode)
74-
seenNodes.append(neighborNode)
73+
neighborNode.visited = true
7574
print(neighborNode.label)
7675
}
7776
}

0 commit comments

Comments
 (0)