- eBook:Data Structures & Algorithms in Swift: Implementing practical data structures with Swift 4.2
- Author:raywenderlich Tutorial Team, Kelvin Lau, Vincent Ngo
- Data:January 17, 2019
- Pages:436 pages
Data structures and algorithms form the basis of computer programming and are the starting point for anyone looking to become a software engineer. Choosing the right data structure and algorithm involves understanding the many details and trade-offs of using them, which can be time-consuming to learn — and confusing.
This is where this book, Data Structures & Algorithms in Swift, comes to the rescue! In this book, you’ll learn the nuts and bolts of how fundamental data structures and algorithms work by using easy-to-follow tutorials, loaded with illustrations; you'll also learn by working in Swift playground code.
Who This Book Is For
This book is for developers who know the basics of Swift syntax and want a better theoretical understanding of what data structures and algorithms are in order to build more complex programs or ace a whiteboard interview.
Topics Covered in Data Structures & Algorithms in Swift
- Basic data structures and algorithm including stacks, queues and linked lists.
- How protocols can be used to generalize algorithms.
- How to leverage the algorithms of the Swift standard library with your own data structures.
- Trees, tries and graphs.
- Building algorithms on top of other primitives.
- A complete spectrum of sorting algorithms from simple to advanced.
- How to think about algorithmic complexity.
- Finding shortest paths, traversals, subgraphs and much more.
Chapter 1: Preface
Chapter 2: Swift Standard Library
Chapter 3: Complexity
Section II: Elementary Data Structures
Chapter 4: Linked List
Chapter 5: Linked List Challenges
Chapter 6: Stack Data Structure
Chapter 7: Stack Challenges
Chapter 8: Queues
Chapter 9: Challenges: Queue Data Structure
Section III: Trees
Chapter 10: Trees
Chapter 11: Tree Challenge
Chapter 12: Binary Trees
Chapter 13: Binary Tree Challenges
Chapter 14: Binary Search Trees
Chapter 15: Binary Search Tree Challenges
Chapter 16: AVL Trees
Chapter 17: AVL Tree Challenges
Chapter 18: Tries
Chapter 19: Trie Challenges
Chapter 20: Binary Search
Chapter 21: Binary Search Challenges
Chapter 22: The Heap Data Structure
Chapter 23: Heap Data Structure Challenges
Chapter 24: Priority Queue
Chapter 25: Priority Queue Challenges
Section IV: Sorting Algorithms
Chapter 26: O(n²) Sorting Algorithms
Chapter 27: O(n²) Sorting Challenges
Chapter 28: Merge Sort
Chapter 29: Merge Sort Challenge
Chapter 30: Radix Sort
Chapter 31: Radix Sort Challenge
Chapter 32: Heap Sort
Chapter 33: Heap Sort Challenges
Chapter 34: Quicksort
Chapter 35: Quicksort Challenges
Section V: Graphs
Chapter 36: Graphs
Chapter 37: Graphs Challenges
Chapter 38: Breadth-First Search
Chapter 39: Breadth-First Search Challenges
Chapter 40: Depth-First Search
Chapter 41: Depth-First Search Challenges
Chapter 42: Dijkstra’s Algorithm
Chapter 43: Dijkstra’s Algorithm Challenges
Chapter 44: Prim’s Algorithm
Chapter 45: Prim’s Algorithm Challenges
Section VI: Challenge Solutions
Solutions to Section 2
Solutions to Section 3
Solutions to Section 4
Solutions to Section 5