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 (IndexOf) 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