From fca4f7615fd301e357aabef492af9af011f7c647 Mon Sep 17 00:00:00 2001 From: waynewbishop Date: Fri, 22 Sep 2017 14:44:29 -0700 Subject: [PATCH] Swift 4 features code complete.. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - implemented subscripts for LinkedLists and Tries. - removed numerous references to IUO’s. - refactored various unit tests to support subscripts and regular optionals. --- Source/Factories/BSTree.swift | 3 +- Source/Factories/LinkedList.swift | 57 ++++++------ Source/Factories/Queue.swift | 52 ++++------- Source/Factories/Stack.swift | 2 +- Source/Factories/Trie.swift | 16 ++-- Source/Structures/TrieNode.swift | 4 +- .../UserInterfaceState.xcuserstate | Bin 140064 -> 161126 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 18 ++++ SwiftTests/BSTest.swift | 14 +-- SwiftTests/ClosureTest.swift | 4 +- SwiftTests/LinkedTest.swift | 86 ++++++++---------- SwiftTests/QueueTest.swift | 1 + SwiftTests/StackTest.swift | 8 -- SwiftTests/TrieTest.swift | 50 +++++----- 14 files changed, 140 insertions(+), 175 deletions(-) diff --git a/Source/Factories/BSTree.swift b/Source/Factories/BSTree.swift index fbdf853..78d323e 100644 --- a/Source/Factories/BSTree.swift +++ b/Source/Factories/BSTree.swift @@ -90,7 +90,7 @@ class BSTree{ } - //equality test + //equality test - O(log n) func contains(_ key: T) -> Bool { var current: BSNode? = root @@ -194,6 +194,7 @@ class BSTree{ //MARK: Balancing Methods + //determine if the tree is "balanced" - operations on a balanced tree is O(log n) func isTreeBalanced(for element: BSNode?) -> Bool { diff --git a/Source/Factories/LinkedList.swift b/Source/Factories/LinkedList.swift index c931592..b3ed75b 100644 --- a/Source/Factories/LinkedList.swift +++ b/Source/Factories/LinkedList.swift @@ -1,5 +1,5 @@ // -// SwiftFactory.swift +// LinkedList.swift // SwiftStructures // // Created by Wayne Bishop on 6/7/14. @@ -9,42 +9,32 @@ import Foundation -public class LinkedList { +class LinkedList { //new instance private var head = LLNode() + private var counter: Int = 0 - - var count: Int { - - if head.key == nil { - return 0 - } - - else { - - var current: LLNode = head - var x: Int = 1 - - - //cycle through the list of items - while current.next != nil { - current = current.next! - x += 1 - } - - return x - - } + + //the number of items - O(1) + var count: Int { + return counter } + + //find subscript shortcut + subscript(index: Int) -> LLNode? { + get { + return find(at: index) + } + } //empty list check - func isEmpty() -> Bool! { - return self.count == 0 || head.key == nil + func isEmpty() -> Bool { + return counter == 0 || head.key == nil } @@ -56,6 +46,7 @@ public class LinkedList { //trivial check guard head.key != nil else { head.key = key + counter += 1 return } @@ -82,6 +73,7 @@ public class LinkedList { } //end while + counter += 1 } @@ -107,7 +99,7 @@ public class LinkedList { //obtain link at a specific index - func find(at index: Int) ->LLNode! { + func find(at index: Int) ->LLNode? { //check empty conditions @@ -117,13 +109,13 @@ public class LinkedList { else { - var current: LLNode! = head + var current: LLNode = head var x: Int = 0 //cycle through elements while (index != x) { - current = current.next + current = current.next! x += 1 } @@ -150,6 +142,7 @@ public class LinkedList { //establish the head node guard head.key != nil else { head.key = key + counter += 1 return } @@ -206,6 +199,8 @@ public class LinkedList { } //end while + counter += 1 + } @@ -253,6 +248,7 @@ public class LinkedList { } //end while + counter -= 1 } //end function @@ -325,8 +321,7 @@ public class LinkedList { if formula(current) == true { results.append(element: current.key) } - - + current = current.next } diff --git a/Source/Factories/Queue.swift b/Source/Factories/Queue.swift index 942218a..d6fb61c 100644 --- a/Source/Factories/Queue.swift +++ b/Source/Factories/Queue.swift @@ -8,11 +8,10 @@ import Foundation -public class Queue { - - - private var top: Node! - +class Queue { + + private var top: Node? + private var counter: Int = 0 init() { top = Node() @@ -21,24 +20,7 @@ public class Queue { //the number of items var count: Int { - - guard top.key != nil else { - return 0 - } - - - var current: Node = top - var x: Int = 1 - - - //cycle through items - while current.next != nil { - current = current.next! //TODO: Add guard statement here.. - x += 1 - } - - return x - + return counter } @@ -47,8 +29,8 @@ public class Queue { //retrieve the top most item - func peek() -> T! { - return top.key + func peek() -> T? { + return top?.key } @@ -56,12 +38,10 @@ public class Queue { //check for the presence of a value func isEmpty() -> Bool { - guard top.key != nil else { + guard top?.key != nil else { return true } - return false - } @@ -74,8 +54,9 @@ public class Queue { //trivial case - guard top.key != nil else { - top.key = key + guard top?.key != nil else { + top?.key = key + counter += 1 return } @@ -92,7 +73,7 @@ public class Queue { //append new item childToUse.key = key current?.next = childToUse - + counter += 1 } @@ -102,23 +83,24 @@ public class Queue { //determine key instance - guard top.key != nil else { + guard top?.key != nil else { return nil } - + //retrieve and queue the next item - let queueItem: T? = top.key + let queueItem: T? = top?.key //use optional binding - if let nextItem = top.next { + if let nextItem = top?.next { top = nextItem } else { top = Node() } + counter -= 1 return queueItem diff --git a/Source/Factories/Stack.swift b/Source/Factories/Stack.swift index 3dd6578..989140b 100644 --- a/Source/Factories/Stack.swift +++ b/Source/Factories/Stack.swift @@ -59,7 +59,7 @@ class Stack { func pop() { if self.count > 1 { - top = top.next! //TODO: Add guard statement here.. + top = top.next! //set counter counter -= 1 diff --git a/Source/Factories/Trie.swift b/Source/Factories/Trie.swift index df9d96c..c503217 100644 --- a/Source/Factories/Trie.swift +++ b/Source/Factories/Trie.swift @@ -11,15 +11,19 @@ import Foundation public class Trie { - private var root: TrieNode! + private var root = TrieNode() - init(){ - root = TrieNode() + //find subscript shortcut + subscript(word: String) -> Array? { + get { + return find(word) + } } + //builds a tree hierarchy of dictionary content func append(word keyword: String) { @@ -84,7 +88,7 @@ public class Trie { //find words based on the prefix - func find(_ keyword: String) -> Array! { + func find(_ keyword: String) -> Array? { //trivial case @@ -129,7 +133,7 @@ public class Trie { //retrieve the keyword and any descendants if ((current.key == keyword) && (current.isFinal)) { - wordList.append(current.key) + wordList.append(current.key!) } @@ -137,7 +141,7 @@ public class Trie { for child in current.children { if (child.isFinal == true) { - wordList.append(child.key) + wordList.append(child.key!) } } diff --git a/Source/Structures/TrieNode.swift b/Source/Structures/TrieNode.swift index 637b20e..25f98ba 100644 --- a/Source/Structures/TrieNode.swift +++ b/Source/Structures/TrieNode.swift @@ -10,8 +10,8 @@ import Foundation public class TrieNode { - - var key: String! + + var key: String? var children: Array var isFinal: Bool var level: Int diff --git a/SwiftStructures.xcodeproj/project.xcworkspace/xcuserdata/waynebishop.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftStructures.xcodeproj/project.xcworkspace/xcuserdata/waynebishop.xcuserdatad/UserInterfaceState.xcuserstate index 1507544de3aa2efa0e8bc13acebfe9e4efec8817..48b56474531a981d299d07c70e88f6c58e717840 100644 GIT binary patch literal 161126 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

d+E=8YWNHM0EQp_oq6l;nt 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 z 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%0AS;ZNbf|XcOud|5n)e6*c0ypuwlUv06`0o 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 c^i1%7|Ibrt{@*`~MgG5k{{R0wv? + + + + + + diff --git a/SwiftTests/BSTest.swift b/SwiftTests/BSTest.swift index 0601302..f639506 100644 --- a/SwiftTests/BSTest.swift +++ b/SwiftTests/BSTest.swift @@ -229,20 +229,14 @@ class BSTest: XCTestCase { XCTAssertNotNil(bsTest, "bst instance not created..") - //build the tree list for item in sequence { print("adding \(item) to tree...") bsTest.append(element: item) } - - //traverse the completed tree bsTest.root.traverse() - - //tree balance check XCTAssertTrue(bsTest.isTreeBalanced(for: bsTest.root), "tree is unbalanced..") - } @@ -255,18 +249,15 @@ class BSTest: XCTestCase { XCTAssertNotNil(bsTest, "bst instance not created..") - //build the tree list for item in sequence { print("adding \(item) to bst tree...") bsTest.append(element: item) } - //traverse the completed tree bsTest.root.traverse() - //tree balance check XCTAssertTrue(bsTest.isTreeBalanced(for: bsTest.root), "tree is unbalanced..") @@ -280,23 +271,20 @@ class BSTest: XCTestCase { func buildClosureTree() -> BSTree { - //test for new instance let bsTest: BSTree = BSTree() - XCTAssertNotNil(bsTest, "avl instance not created..") + XCTAssertNotNil(bsTest, "bst instance not created..") //provide a balanced list let numberList : Array = [8, 5, 10, 3, 12, 9, 6, 16] - //build the tree list for number in numberList { print("adding \(number) to avl tree...") bsTest.append(element: number) } - //tree balance check - verify root node XCTAssertTrue(bsTest.isTreeBalanced(for: bsTest.root), "tree is unbalanced..") diff --git a/SwiftTests/ClosureTest.swift b/SwiftTests/ClosureTest.swift index 9dd699d..a5d939d 100644 --- a/SwiftTests/ClosureTest.swift +++ b/SwiftTests/ClosureTest.swift @@ -111,7 +111,7 @@ class ClosureTest: XCTestCase { //iterate and compare values for s in 0.. = self.buildLinkedList() - let nodecount: Int = linkedList.count + let list = buildLinkedList() + let nodecount: Int = list.count - //lowest bound - let lowerbound: LLNode! = linkedList.find(at: 0) - if ((lowerbound == nil) || (lowerbound.key != numberList[0])) { + //test lower-bound + let lbound = list[0] + if ((lbound == nil) || (lbound?.key != numberList[0])) { XCTFail("lowest bound retrieve fail..") } //upper bound - let upperbound: LLNode! = linkedList.find(at: nodecount - 1) - if ((upperbound == nil) || (upperbound.key != numberList[nodecount - 1])) { + let ubound = list[nodecount - 1] + if ((ubound == nil) || (ubound?.key != numberList[nodecount - 1])) { XCTFail("upper bound retrieve fail..") } - - //random index + //establish random index let range: UInt32 = UInt32(numberList.count) let randomIndex = Int(arc4random_uniform(range)) - //retrieve random index - let randomlink: LLNode! = linkedList.find(at: randomIndex) - if ((randomlink == nil) || (randomlink.key != numberList[randomIndex])) { + let randomlink = list[randomIndex] + if ((randomlink == nil) || (randomlink?.key != numberList[randomIndex])) { XCTFail("random index retrieve fail..") } @@ -76,16 +75,15 @@ class LinkedTest: XCTestCase { //create list and test pair - let linkedList: LinkedList = self.buildLinkedList() + let list = buildLinkedList() let testPair: keyIndex = keyIndex(key: 4, index: 3) - linkedList.insert(testPair.key, at: testPair.index) - linkedList.printAllKeys() - + list.insert(testPair.key, at: testPair.index) + list.printAllKeys() - let current = linkedList.find(at: testPair.index) as LLNode! + let current = list[testPair.index] //test condition if current == nil || current?.key != testPair.key { @@ -94,12 +92,12 @@ class LinkedTest: XCTestCase { //remove test item - linkedList.remove(at: testPair.index) - linkedList.printAllKeys() + list.remove(at: testPair.index) + list.printAllKeys() //retrieve value at same position - let removed = linkedList.find(at: testPair.index) as LLNode! + let removed = list.find(at: testPair.index) as LLNode! if removed == nil || removed?.key == testPair.key { XCTFail("test failed: removed linked list element not found") @@ -114,58 +112,48 @@ class LinkedTest: XCTestCase { //reverse a linked list func testReverseLinkedList() { + let list = buildLinkedList() - let linkedList: LinkedList = self.buildLinkedList() - let linkForwards: LLNode! = linkedList.find(at: 0) - if (linkForwards == nil) { + //find (subscript) syntax + guard let flink = list[0] else { XCTFail("link for reversal not found..") + return } //reverse the list - linkedList.reverse() - linkedList.printAllKeys() + list.reverse() + list.printAllKeys() - let linkBackwards: LLNode! = linkedList.find(at: 0) - - - //evaluate keys - if (linkForwards.key == linkBackwards.key) { - XCTFail("reversed list failed..") + if let blink = list[0] { + + //evaluate keys + if (flink.key == blink.key) { + XCTFail("reversed list failed..") + } } - - } //MARK: helper functions - - - func buildLinkedList() ->LinkedList! { - - let linkedList: LinkedList = LinkedList() + + func buildLinkedList() ->LinkedList { + let list = LinkedList() //append items for number in numberList { - linkedList.append(element: number) + list.append(element: number) } - linkedList.printAllKeys() - - - if (linkedList.count != numberList.count) { - XCTFail("test failed: linked list count doesn't match number list..") - return nil - } - - return linkedList - + list.printAllKeys() + XCTAssertFalse(list.count != numberList.count, "test failed: linked list count doesn't match number list..") + return list } } diff --git a/SwiftTests/QueueTest.swift b/SwiftTests/QueueTest.swift index d7898bc..a17ae6a 100644 --- a/SwiftTests/QueueTest.swift +++ b/SwiftTests/QueueTest.swift @@ -39,6 +39,7 @@ class QueueTest: XCTestCase { //deQueue list items.. numberList.count.times { (s: Int) -> Void in print("the queued item is \(q.peek() as Int!)") + print ("count is: \(q.count)") _ = q.deQueue() } diff --git a/SwiftTests/StackTest.swift b/SwiftTests/StackTest.swift index 578582a..dc939ef 100644 --- a/SwiftTests/StackTest.swift +++ b/SwiftTests/StackTest.swift @@ -37,19 +37,11 @@ class StackTest: XCTestCase { print("item: \(s) added..") } - XCTAssertTrue(myStack.count == numberList.count, "test failed: stack count does not match..") } - /* - notes: This test class mimics the basic functionality of adding and removing stack items. - The "times" closure expression used is a custom Int extension and is not part - of the core library. - */ - - func testPopStack() { diff --git a/SwiftTests/TrieTest.swift b/SwiftTests/TrieTest.swift index b5c12a0..f85199b 100644 --- a/SwiftTests/TrieTest.swift +++ b/SwiftTests/TrieTest.swift @@ -14,15 +14,14 @@ import XCTest class TrieTest: XCTestCase { - var testTrie: Trie = Trie() + var testTrie = Trie() override func setUp() { super.setUp() XCTAssertNotNil(testTrie, "Trie instance not correctly intialized..") - - + //add words to data structure testTrie.append(word: "Ball") testTrie.append(word: "Balls") @@ -41,23 +40,29 @@ class TrieTest: XCTestCase { func testFindWithPrefix() { - let wordList: Array! = testTrie.find("Ba") - for word in wordList { - print("\(word) found in trie..") + guard let list = testTrie["Ba"] else { + XCTFail("test failed: no words found..") + return } + for word in list { + print("\(word) found in trie..") + } } - /* - the findWord algorthim will identify both parents and children identified as words - */ - + + //note: the findWord algorthim will identify both parents and children identified as words + func testFindWithWord() { - let wordList: Array! = testTrie.find("Ball") - for word in wordList { + guard let list = testTrie["Ball"] else { + XCTFail("test failed: no words found") + return + } + + for word in list { print("\(word) found in trie..") } @@ -67,24 +72,15 @@ class TrieTest: XCTestCase { //testing false search results func testFindNoExist() { - let keyword: String = "Barstool" - let wordList: Array! = testTrie.find(keyword) - - - if (wordList == nil) { - print("keyword \(keyword) not found in trie..") - } + let keyword = "Barstool" - else { - for word in wordList { - //print("\(word) found in trie..") - XCTFail("Test error. \(word) found in trie..") - } + //attempt to find word + guard let _ = testTrie[keyword] else { + return } - - - } //end function + XCTFail("test failed: \(keyword) incorrectly found in trie..") + } }