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,
- > hands on lessons, practice exercises and solutions,
- > 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.
สารบัญ
Table of Contents
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
3. Arrays
3.1. Introduction
3.2. Arrays
3.3. Working with Arrays
3.4. Exercise 1: Building an Array
3.5. Solution 1: Building the Array
3.6. Solution 2: Insert Method
3.7. Solution 3: Remove Method
3.8. Solution 4: Search (Index Of) Method
3.9. Dynamic Arrays
3.10. Wrap up
4. Linked Lists
4.1. Introduction
4.2. What Are Linked Lists?
4.3. Working with Linked Lists
4.4. Exercise 2: Building a Linked List
4.5. Solution: Building a Linked List
4.6. Implementing Size
4.7. Converting Linked Lists to Arrays
4.8. Cheat Sheets
4.9. Arrays vs Linked Lists
4.10. Types of Linked Lists
4.11. Exercise 3: Reversing a Linked List
4.12. Solution: Reversing a Linked List
4.13. Exercise 4: Kth Node from the End.
4.14. Solution: Kth Node from the End
4.15. Wrap up
5. Stacks
5.1. Introduction
5.2. What are Stacks?
5.3. Working with Stacks
5.4. Exercise 5: Reversing a String with Stack
5.5. Solution: Reversing a String with Stack
5.6. Exercise 6: Balanced Expressions
5.7. Solution 1: A Basic Implementation
5.8. Solution 2: Supporting Multiple Brackets
5.9. Solution 3: First Refactoring
5.10. Solution 4: Second Refactoring
5.11. Exercise 7: Implementing a Stack from Scratch
5.12. Solution: Implementing a Stack from Scratch
5.13. Wrap up
6. Queues
6.1. Introduction
6.2. Working with Queues
6.3. Exercise 8: Reversing a Queue
6.4. Solution: Reversing a Queue
6.5. Exercise 9: Building a Queue Using Arrays
6.6. Solution 1: A Basic Implementation
6.7. Solution 2: Using Circular Arrays
6.7.1. Circular Queue Operations
6.8. Exercise: Building a Queue Using Stacks
6.9. Solution: Building a Queue Using Stacks
6.10. Priority Queues
6.11. Exercise: Building a Priority Queue
6.12. Solution 1: Building a Priority Queue
6.13. Solution 2: Refactoring Our Code
6.14. Wrap up
7. Hash Tables
7.1. Introduction
7.2. What are Hash Tables
7.3. Working with Hash Tables
7.4. Exercise: First Non-repeated Character
7.5. Solution: First Non-repeated Character
7.6. Sets
7.7. Exercise: First Repeated Character
7.8. Exercise: First Repeated Character
7.9. Hash Functions
7.10. Collisions
7.11. Chaining – 30:26 min.
7.12. Linear Probing
7.13. Quadratic Probing
7.14. Double Hashing
7.14.1. Review of All the Probing Algorithms Theory
7.15. Exercise: Building a Hash Table
7.16. Solution: put( )
7.17. Solution: get( )
7.18. Solution: remove( )
7.19. Solution: Refactoring & Automated Testing
7.20. Wrap up
7.21. Coming up Next
7.22. How to Download Tutorial Videos & Other Resources