Introduction to Algorithms & Data Structures 3: Learn Linear Data Structures with Videos & Interview Questions

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This playbook is the third volume of the series Introduction to Algorithms & Data Structures. It is written in the form of a course. It is a very comprehensive data structures and algorithms book, packed with text tutorials with a lot of illustrations 5 hours of HD video tutorials, popular interview questions asked by Google, Microsoft, Amazon and other big companies, practice exercises, codes written during the course and screenshots used in this book. Most data structure books and courses are too academic and boring. They have too much math and their codes look ugly, old and disgusting! This book is bundled with tutorial videos that are fun and easy to follow along, and show you how to write beautiful code like a software engineer, not a mathematician. Mastering data structures and algorithms is essential to getting your dream job. So, don't waste your time browsing disconnected tutorials or super long, boring courses. If you failed a job interview because you couldn't answer basic data structure and algorithm questions, just study this book and its accompanying videos. Understanding data structures and algorithms is crucial to excel as a software engineer. That’s why companies like Google, Microsoft and Amazon, always include interview questions on data structures and algorithms. I will teach you everything you need to know about data structures and algorithms so you can ace your coding interview with confidence. This course is a perfect mix of theory and practice, packed with over 100 popular interview questions. Another benefit is that data structures and algorithms will make you think more logically. They can help you design better systems for storing and processing data. They also serve as a tool for optimization and problem-solving. As a result, the concepts of algorithms and data structures are very valuable in any field. For example, you can use them when building a web app or writing software for other devices. You can apply them to machine learning and data analytics, which are two hot areas right now. If you are a hacker, algorithms and data structures are also important for you everywhere. Now, whatever your preferred learning style, I've got you covered. If you're a visual learner, you'll love my HD videos, and illustrations throughout this book. If you're a practical learner, you'll love my hands-on lessons and practice exercises so that you can get practical with algorithms and data structures and learn in a hands-on way.

Author(s): Aremu Bolakale, Jr. Charles Johnson.
Publisher: A. B. Lawal
Year: 2023

Language: English
Pages: 271

0. What You Get
0.1. Requirements
0.2. Benefits of Learning Algorithms and Data Structures
0.3. How This Course is Structured
1. Introduction to Linear Data Structures
1.1. What is an Algorithm?
1.2. What is Data Structure?
2. The Big O Notation
2.1. What is Big O? – 00:00 min.
2.2. O(1) – 01:59 min.
2.3. O(n) – 03:28 min.
2.4. – 07:13 min.
2.5. O(log n) – 09:37 min.
2.6. – 12:16 min.
2.7. Space Complexity – 13:07 min.
3. Arrays
3.1. Introduction – 00:00 min.
3.2. Arrays – 00:45 min.
3.2.1. How an Array Stores Items
3.2.2. Limitations/Weaknesses of Arrays
3.3. Working with Arrays – 03:53 min.
3.4. Exercise 1: Building an Array – 07:23 min.
3.5. Solution 1: Building the Array – 10:15 min.
3.5.1. Public Class
3.5.2. Private Class
3.6. Solution 2: Insert Method – 13:34 min.
3.7. Solution 3: Remove Method – 17:54 min.
3.7.1. Validation of Index
3.8. Solution 4: Search (IndexOf) Method – 22:45 min.
3.9. Dynamic Arrays – 25:13 min.
3.9.1. Overview of the Vector Class
3.10. Wrap up – 29:02 min.
3.10.1. Runtime Complexities of Various Operations
4. Linked Lists
4.1. Introduction – 00:00 min.
4.2. What Are Linked Lists? – 00:37 min.
4.3. Working with Linked Lists – 05:10 min.
4.4. Exercise 2: Building a Linked List – 08:34 min.
4.5. Solution: Building a Linked List – 09:59 min.
4.6. Implementing Size – 30:27 min.
4.7. Converting Linked Lists to Arrays – 34:42 min.
4.8. Cheat Sheets – 36:53 min.
4.9. Arrays vs Linked Lists – 38:05 min.
4.10. Types of Linked Lists – 41:26 min.
4.11. Exercise 3: Reversing a Linked List – 44:41 min.
4.12. Solution: Reversing a Linked List – 46:14 min.
4.13. Exercise 4: Kth Node from the End – 55:15 min.
4.14. Solution: Kth Node from the End – 58:35 min.
4.15. Wrap up – 1:03:57 min.
5. Stacks
5.1. Introduction – 00:00 min.
5.2. What are Stacks? – 00:32 min.
5.2.1. Structure of Stacks
5.2.2. Operations that Stacks Support
5.3. Working with Stacks – 03:19 min.
5.4. Exercise 5: Reversing a String with Stack – 05:40 min.
5.5. Solution: Reversing a String with Stack – 06:21 min.
5.6. Exercise 6: Balanced Expressions – 11:22 min.
5.7. Solution 1: A Basic Implementation – 14:17 min.
5.8. Solution 2: Supporting Multiple Brackets – 19:35 min.
5.9. Solution 3: First Refactoring – 23:11 min.
5.10. Solution 4: Second Refactoring – 27:20 min.
5.11. Exercise 7: Implementing a Stack from Scratch – 33:12 min.
5.12. Solution: Implementing a Stack from Scratch – 33:59 min.
5.13. Wrap up – 42:17 min.
5.13.1. Key Points About Stacks
6. Queues
6.1. Introduction – 00:27 min.
6.1.1. Applications of Queues
6.1.2. Common Methods for Implementing Queues:
6.1.3. Operations and Runtime Complexities of Queues
6.2. Working with Queues – 02:31 min.
6.3. Exercise 8: Reversing a Queue – 07:44 min.
6.4. Solution: Reversing a Queue – 08:50 min.
6.5. Exercise 9: Building a Queue Using Arrays – 11:07 min.
6.6. Solution 1: A Basic Implementation – 13:11 min.
6.7. Solution 2: Using Circular Arrays – 19:43 min.
6.7.1. Circular Queue Operations
6.8. Exercise: Building a Queue Using Stacks – 25:37 min.
6.9. Solution: Building a Queue Using Stacks – 26:32 min.
6.10. Priority Queues – 34:15 min.
6.10.1. Key Features of a Priority Queue
6.10.2. Applications of Priority Queues
6.11. Exercise: Building a Priority Queue – 36:09 min.
6.12. Solution 1: Building a Priority Queue – 40:06 min.
6.13. Solution 2: Refactoring Our Code – 48:57 min.
6.14. Wrap up – 51:59 min.
7. Hash Tables
7.1. Introduction – 00:00 min.
7.2. What are Hash Tables – 00:27 min.
7.2.1. Benefits & Applications of Hash Tables
7.2.2. How Hash Tables Work
7.2.3. Operations Supported by Hash Tables
7.3. Working with Hash Tables – 03:11 min.
7.4. Exercise: First Non-repeated Character – 09:18 min.
7.5. Solution: First Non-repeated Character – 10:13 min.
7.6. Sets – 17:52 min.
7.7. Exercise: First Repeated Character – 20:16 min.
7.8. Exercise: First Repeated Character – 20:48 min.
7.9. Hash Functions – 23:24 min.
7.9.1. How HashCode Works
7.10. Collisions – 29:19 min.
7.10.1. How to Handle Collisions
7.11. Chaining – 30:26 min.
7.12. Linear Probing – 32:06 min.
7.12.1. Linear Probing
7.13. Quadratic Probing – 34:48 min.
7.14. Double Hashing – 36:17 min.
7.14.1. Review of All the Probing Algorithms Theory
7.15. Exercise: Building a Hash Table – 39:37 min.
7.16. Solution: put( ) – 42:14 min.
7.17. Solution: get( ) – 48:21 min.
7.18. Solution: remove( ) – 52:51 min.
7.19. Solution: Refactoring & Automated Testing– 55:22 min.
7.20. Wrap up – 1:06:26 min.
7.21. Coming up Next
7.22. How to Download Tutorial Videos & Other Resources