Skip to content

Commit d1874e8

Browse files
author
Thukor
committed
Merged Queue with Trie
1 parent b66a88a commit d1874e8

File tree

4 files changed

+520
-53
lines changed

4 files changed

+520
-53
lines changed

Trie/Package.swift

Lines changed: 0 additions & 6 deletions
This file was deleted.

Trie/Queue.swift

Lines changed: 0 additions & 47 deletions
This file was deleted.

Trie/trie.swift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,45 @@
1+
/*
2+
Queue implementation (taken from repository, needed for findPrefix())
3+
*/
4+
public struct Queue<T> {
5+
private var array = [T?]()
6+
private var head = 0
7+
8+
public var isEmpty: Bool {
9+
return count == 0
10+
}
11+
12+
public var count: Int {
13+
return array.count - head
14+
}
15+
16+
public mutating func enqueue(element: T) {
17+
array.append(element)
18+
}
19+
20+
public mutating func dequeue() -> T? {
21+
guard head < array.count, let element = array[head] else { return nil }
22+
23+
array[head] = nil
24+
head += 1
125

26+
let percentage = Double(head)/Double(array.count)
27+
if array.count > 50 && percentage > 0.25 {
28+
array.removeFirst(head)
29+
head = 0
30+
}
31+
32+
return element
33+
}
34+
35+
public func peek() -> T? {
36+
if isEmpty {
37+
return nil
38+
} else {
39+
return array[head]
40+
}
41+
}
42+
}
243
/*
344
A Trie (Pre-fix Tree)
445

0 commit comments

Comments
 (0)