Data Structures and Algorithms are much more than theoretical concepts. Learning them gives you an ability to understand computational complexity, solve problems, and write efficient code. Kotlin Data structures and Algorithms enables you to write code that runs faster which is hugely important in web and mobile world. This book takes you through a pragmatic approach with techniques and real-world examples that you can use in your regular production environment.
We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, as well as abstract data types such as stacks and queues. Next, we’ll take you through the basics of functional programming while making sure you get used to thinking recursively.
We provide plenty of examples along the way to help you understand each concept. You will also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!
By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications.
Table of Contents
1: A Walk through: Data Structures and Algorithms
2: Arrays First Step to Grouping Data
3: Introducing Linked Lists
4: Understanding Stacks and Queues
5: Maps Working with Key-Value pair
6: Deep dive into Searching Algorithms
7: Understanding Sorting Algorithms
8: Understanding Selection Algorithms
9: Collections and Data Operations in Kotlin
10: Introduction to Functional Programming
11: Introducing Reactive Programming
13: Advanced Concept of Trees
15: Working with Hashing and Tables
What You Will Learn
- Understand the basic principles of algorithms, data structures, and measurement of complexity.
- Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and so on.
- Get a grasp on the basics of abstract data types—stack, queue, and double ended queue.
- See how to use recursive functions and immutability while understanding and in terms of recursion.
- Handle reactive programming and its related data structures.
- Use binary search, sorting, and efficient sorting—quicksort and merge sort.
- Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees.
- Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more.