Introduction to Algorithms & Data Structures 3: Learn Linear Data Structures with Videos & Interview Questions
5/5
()
About this ebook
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,
Bolakale Aremu
My educational background is in software development. I work with a few colleagues who are software developers and system engineers. I spent over 17 years as a software developer, and I've done a bunch of other things too. I've been involved in SDLC/process, data science, operating system security and architecture, and many more. My most recent project is serverless computing where I simplify the building and running of distributed systems. I always use a practical approach in my projects and courses. Cheers, Bolakale Aremu (Self-publisher and CEO ); Charles H. Johnson (Co-publisher and Publishing Assistant ).
Read more from Bolakale Aremu
Web Development from Beginner to Paid Professional: Coding Challenges and Solutions - The smartest way to learn html and css Rating: 0 out of 5 stars0 ratingsSelf Publishing from Beginner to Paid Professional: A Clear Success Roadmap for Aspiring Indie Authors Rating: 5 out of 5 stars5/5Cryptocurrency From Beginner to Paid Professional: The Expert's Roadmap to Financial Freedom Rating: 0 out of 5 stars0 ratings
Related to Introduction to Algorithms & Data Structures 3
Titles in the series (3)
Introduction to Algorithms & Data Structures 1: A solid foundation for the real world of machine learning and data analytics Rating: 0 out of 5 stars0 ratingsIntroduction to Algorithms & Data Structures 2: A solid foundation for the real world of machine learning and data analytics Rating: 0 out of 5 stars0 ratings
Related ebooks
Introduction to Algorithms & Data Structures 2: A solid foundation for the real world of machine learning and data analytics Rating: 0 out of 5 stars0 ratingsIntroduction to Algorithms & Data Structures 1: A solid foundation for the real world of machine learning and data analytics Rating: 0 out of 5 stars0 ratingsAnalysis and Design of Algorithms: A Beginner’s Hope Rating: 0 out of 5 stars0 ratingsMachine Learning: Adaptive Behaviour Through Experience: Thinking Machines Rating: 4 out of 5 stars4/5Algorithm Challenges: The Dojo Collection Rating: 0 out of 5 stars0 ratingsPython Quick Interview Guide: Top Expert-Led Coding Interview Question Bank for Python Aspirants (English Edition) Rating: 0 out of 5 stars0 ratingsProgrammer's Motivation for Beginners: Real Learning Stories & Tips Rating: 5 out of 5 stars5/5PYTHON MACHINE LEARNING: A Comprehensive Guide to Building Intelligent Applications with Python (2023 Beginner Crash Course) Rating: 0 out of 5 stars0 ratingsData Structures with Python: Get familiar with the common Data Structures and Algorithms in Python (English Edition) Rating: 0 out of 5 stars0 ratingsA Quick Reference to Data Structures and Computer Algorithms: An Insight on the Beauty of Blockchain Rating: 0 out of 5 stars0 ratingsHashing Rating: 0 out of 5 stars0 ratingsMachine Learning - A Complete Exploration of Highly Advanced Machine Learning Concepts, Best Practices and Techniques: 4 Rating: 0 out of 5 stars0 ratingsData Structures II Essentials Rating: 0 out of 5 stars0 ratingsDebugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems Rating: 4 out of 5 stars4/5GROKKING ALGORITHMS: Simple and Effective Methods to Grokking Deep Learning and Machine Learning Rating: 0 out of 5 stars0 ratingsThe Black Book of the Programmer Rating: 0 out of 5 stars0 ratingsDesign And Analysis Of Algorithm Rating: 0 out of 5 stars0 ratingsThe Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms Rating: 0 out of 5 stars0 ratingsNoSQL For Dummies Rating: 0 out of 5 stars0 ratingsProgramming Interviews For Dummies Rating: 0 out of 5 stars0 ratingsClassic Computer Science Problems in Java Rating: 0 out of 5 stars0 ratingsDesign for Developers Rating: 0 out of 5 stars0 ratings
Programming For You
Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Java for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5SQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Pokemon Go: Guide + 20 Tips and Tricks You Must Read Hints, Tricks, Tips, Secrets, Android, iOS Rating: 5 out of 5 stars5/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsWeb Designer's Idea Book, Volume 4: Inspiration from the Best Web Design Trends, Themes and Styles Rating: 4 out of 5 stars4/5101 Amazing Nintendo NES Facts: Includes facts about the Famicom Rating: 4 out of 5 stars4/5OneNote: The Ultimate Guide on How to Use Microsoft OneNote for Getting Things Done Rating: 1 out of 5 stars1/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratings
Reviews for Introduction to Algorithms & Data Structures 3
1 rating1 review
- Rating: 5 out of 5 stars5/5I find this book very educative and inspiring, especially the supplemental videos. Thank you!
Book preview
Introduction to Algorithms & Data Structures 3 - Bolakale Aremu
0. What You Get
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.
0.1. Requirements
In this volume, we use Java to teach the concepts but you can apply these concepts in any programming language. Our focus is on problem-solving, not programming languages and tools.
All you need to understand the codes are some basic programming skills, which were already taught in the first and second volumes of the series. Alternatively, if you already know variables, loops, and conditional statements, you're good to go.
0.2. Benefits of Learning Algorithms and Data Structures
First, it can help you get your dream software engineering job. If you studied Computer Science but never really understood the complex topic of data structures and algorithms, this playbook will help you. If you are a self-taught programmer, with little to no knowledge of this important topic, you too will find this course very helpful.
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.
0.3. How This Course is Structured
The contents of this course are divided into six parts so you can easily complete it.
The following linear data structures are covered in this course:
Big O Notation
Arrays
Linked Lists
Stacks
Queues
Hash Tables (Dictionaries)
At the end of many sections of this course, short practice exercises are provided to test your understanding of the topic discussed. Solutions are also provided so you can check how well you have performed in each section. At the end of this book, you will find a link to download all the helpful resources, such as videos, all the codes and screenshots used in the tutorials, and a bunch of practice exercises. You can use them for quick references and revision as well. My support link is also provided so that you to contact me any time if you have questions or need further help.
After you have studied this course, you will understand what data structures are, how they are measured and evaluated, and how they are used to solve real-life problems. So, everything you need is right here. I really hope you’ll enjoy it. Are you ready? Let's dive in!
1. Introduction to Linear Data Structures
In this volume, you will learn linear data structures such as arrays, linked lists, stacks, queues, and hash tables. In volume four, we will look at non-linear data structures such as trees, heaps and graphs. This volume and other volumes in the series are great for computer science students whose lectures failed at explaining these concepts or anyone who is preparing for a job interview.
A lot of companies, especially big companies like Google, Microsoft, and Amazon, ask data structure and algorithm questions in their interviews to see if you know how to think like a programmer. The materials in this series will change how you think about coding. They teach you how to think like a programmer and design fast and scalable algorithms.
I'll be using Java in this course because that's a universal understood language, but you can use any language you're familiar with. This is because our focus is on data structures and algorithms, not programming languages. If you're a C# developer, you can get started immediately because Java and C# are very similar. Furthermore, the java compiler I'll be using is intelliJ, an IDE (code editor) that you can download from https://www.jetbrains.com/idea/download/. However, you can use any code editor you are comfortable with. Our focus is on algorithm design, not tooling.
In the Getting Started
folder, I included a video that teaches you step by step how to install Java and other necessary tools such as intelliJ for building Java applications.
Video reference: Part 3 > 1. Getting Started > 1. Java_and_intelliJ_Installation > Installing Java.mp4 (14:07 min)
In case Java is completely new to you, the video also explains how to write a simple Java program. Alternatively, you can watch one of the tons of videos available for free on YouTube on how to install Java and intelliJ on your Windows or Mac computer.
Now, this volume is a bit different from volumes 1 and 2 where you simply read and learn new things. In this volume, you also have to solve problems a lot of problems and that's how you will learn the art of problem solving. All the exercises you see in this volume are popular interview questions. These are the exercises that teach you how to think like a programmer. So, every single one of them is important.
Some of these exercises might be a bit challenging. Don’t quickly jump to my solution. Do your best to solve the problem on your own. What matters is that you spend time thinking about various ways to solve a problem. This process will activate certain parts of your brain, and that's what matters, not the solution.
If you can't complete the exercise in a timely manner, that's perfectly fine. Don't get disappointed. You're a student of this course, so you're learning. If you could complete every exercise immediately, you wouldn't be learning this course, right? So, here's the bottom line. This course is going to change how you think about programming. You'll learn how to solve problems and write beautiful code like a professional software engineer.
I worked really hard for this series to be the ultimate data structures course in the world, and I hope you think that too. Use the support link at the bottom of this book to let me know your thoughts. I cannot wait to hear what you think. Now let's jump in and get started!
1.1. What is an Algorithm?
Simply put, an algorithm is a set of steps or instructions for completing a task. As explained in volume one of this series, an algorithm is a step-by-step set of instructions or a well-defined procedure for solving a specific problem or performing a task. It's a fundamental concept in computer science and mathematics, used to describe the process of solving problems in a systematic and repeatable way. Algorithms can be represented in various forms, such as natural language descriptions, flowcharts, pseudocode, or programming code.
1.2. What is Data Structure?
Data structure is the process of organizing and storing the data. A data structure is a way of organizing and storing data in a computer's memory so that it can be efficiently accessed, manipulated, and managed. It provides a framework for organizing and storing data in a structured manner, which enables various operations to be performed on that data efficiently. Data structures play a crucial role in computer science and programming, as they influence the efficiency and effectiveness of algorithms and software systems.
Data structure is classified into two types:
1. Linear Data Structure – In this type of data structure, the data elements are arranged in a linear sequential order, but we don’t have to store the elements sequentially. Examples are Array, Linked List, Stacks & Queue.
2. Non-Linear Data Structure – In this type of data structure, the data elements are arranged in a non-linear order. Examples are Tree and graphs.
2. The Big O Notation
Video reference: Part 3 > 2. The Big O Notation (15:38 min)
2.1. What is Big O? – 00:00 min.
What is this Big O all about? Well, let's start with the classic definition on Wikipedia.
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity. Wikipedia.
Ha! That's the reason why a lot of people find Big O scary. But as you will see in this section, the underlying concepts are actually not that hard. We use Big O to describe the performance of an algorithm, and this helps us determine if a given algorithm is scalable or not. This basically tells us if this algorithm is going to scale well as the input grows really large.
So, just because your code executes quickly on your computer doesn't mean it's going to perform well when you give it a large data set. That's why we use the Big O notation, O(n), to describe the performance of an algorithm.
Now, what does this have to do with data structures? Well, as you will learn in this course, certain operations can be more or less costly depending on what data structure we use. For example, accessing an array element by its index is super fast.