Data Structures and Algorithms with JavaScript

Simple & Comprehensive DSA Series for JavaScript Programmers

In the real world, data structures play a crucial role in organizing and managing data efficiently in various applications. Whether you are preparing for an interview or want to be a better software programmer you will need to have a solid understanding of the fundamental data structures and algorithms.

Introduction

Introduction to data structures for organizing and managing data in software applications, Introduction to Alogrithms

Big O Notation

Introduction to Big O Notation, Measuring Time Complexity with Big O Notation, Θ of Common Operations on Data Structures

Arrays and strings

Arrays and strings are two most fundamental and widely used data structures that represent an ordered collection of elements that can be iterated.

Hashing

Hashing can be used to implement a hash map - arguably the most powerful data structure or algorithm.

Linked lists

Linked lists are like arrays - they're an ordered collection of elements. The main difference is how they are implemented. Linked lists make use of pointers, which is a very important concept for any software engineer. They're also used to implement other important data structures.

Stacks and queues

Stacks and queues are data structures defined by their interfaces. They're a good example of how a simple idea can be used to implement efficient algorithms, and how data structures & algorithms show up in our everyday lives.

Trees and graphs

Trees and graphs are arguably the most important topic when it comes to software engineering interviews. Their implementations are ubiquitous in the real world.

Heaps

A priority queue, commonly referred to as a heap, is a powerful data structure for querying maximum and minimum elements.

Greedy

"Greedy" is more of a problem solving approach than a data structure or algorithm. You could argue that most of the solutions in the previous chapters were greedy algorithms.

Binary search

Binary search is an extremely powerful algorithm. It's not often that you can use it, but when you can, it greatly speeds up any algorithm.

Backtracking

Backtracking is a general technique that builds promising candidates and discards candidates that cannot lead to an answer. It's an important concept as some problems can only be (reasonably) solved with backtracking.

Dynamic programming

Everyone's favorite - dynamic programming is a programming method that solves problems by breaking them into smaller problems. While most people dread dynamic programming, the topic can be easily learned.

Work on 10+ Cool Web & Mobile Apps while you dive into the Vue Universe.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.