Data Structures and Algorithms — JavaScript

20 lessons. Arrays, maps, trees, graphs, greedy methods, backtracking, and dynamic programming. Parallel language tracks cover corresponding concepts with independent code and progress.

For learners who know variables, loops, functions, lists, and dictionaries. Written lessons, at your own pace.

Start learning

All standard catalog courses are included in the course purchase.

01Complexity and contractsRelate input size to work and distinguish runtime from output size.Free preview02Arrays and prefix computationsUse indices and half-open intervals to transform arrays safely.Free preview03Maps and lookup invariantsUse keyed state while preserving deterministic tie rules.Course04Sets and membershipSeparate membership, multiplicity and output order.Course05Stacks and unresolved workModel last-in-first-out dependencies and monotonic candidates.Course06Queues and moving windowsProcess work in arrival order without repeated shifting.Course07Linked structures and pointer reasoningFollow links independently of physical storage positions.Course08Binary search and boundary invariantsShrink a half-open interval while preserving the desired boundary.Course09Sorting and mergingCompare stable incremental and divide-and-conquer sorting.Course10Recursion and decreasing measuresIdentify base cases and prove recursive calls make progress.Course11Binary-tree traversalChoose visit order and define height consistently.Course12Binary search treesApply ancestor bounds and account for tree shape.Course13Heaps and bounded selectionMaintain local heap order while retaining best candidates.Course14Graph representationsMake direction, repeated edges and isolated vertices explicit.Course15BFS, DFS and componentsUse traversal state to stop cycles and interpret reachability.Course16Graph constraints and shortest pathsRecognize when ordering, coloring or nonnegative weights justify a method.Course17Greedy choices and interval boundariesJustify a local choice and distinguish interval semantics.Course18Backtracking and output-sensitive costExplore choices while restoring shared working state.Course19One-dimensional dynamic programmingDefine a state and combine smaller optimal subproblems.Course20Two-dimensional dynamic programmingRelate prefix states and reduce storage only after understanding dependencies.Course

Learn it. Then put it to work.

Pair the course with 50 challenges, progressive hints, and worked solutions.

Explore the complete bundle