The motivation for writing this book was the lack of resources available about data * O1 G6 @9 C+ U6 C: z+ I5 N, ~structures and algorithms written in JavaScript. This was strange to me because- G2 m& }0 z) g& t' v+ F' n' a
today many of the job opportunities for software development require knowledge of & u' h4 \. M8 d/ P5 sJavaScript; it is the only language that can be used to write the entire stack, including the " I* @; h t, w8 v2 _, Qfront-end, mobile (native and hybrid) platforms, and back-end. It is crucial for JavaScript - R- o. x$ W A# d7 |* n' bdevelopers to understand how data structures work and how to design algorithms to1 {6 F; _4 |* e' T
build applications. 9 \. C- f$ i6 C+ fTherefore, this book aims to teach data structure and algorithm concepts from 1 |$ w/ @: I+ K. s2 \7 Rcomputer science for JavaScript rather than for the more typical Java or C++. Because " ?) u' h) ~" iJavaScript follows the prototypal inheritance pattern, unlike Java and C++ (which follow # n2 ~3 O+ O/ `( c' ?the inheritance pattern), there are some changes in writing data structures in JavaScript. $ O' r' z: ` T+ V. ]- A7 DThe classical inheritance pattern allows inheritance by creating a blueprint-like 5 p( |; o! g- }/ p& iform* c* v8 X) o% v* U
that objects follow during inheritance. However, the prototypal inheritance pattern- Q2 S0 o5 Z, p2 \% Y2 k2 ?
means copying the objects and changing their properties.; g7 K# k7 X0 Q: K/ s* W% Z# E
This book first covers fundamental mathematics for Big-O analysis and then lays out ' H8 I% q6 l5 Y$ T+ t6 L) R6 {, Nthe basic JavaScript foundations, such as primitive objects and types. Then, this book9 v$ g2 B) Z' X
covers implementations and algorithms for fundamental data structures such as linked" o, t5 o0 J! I( H `! b
lists, stacks, trees, heaps, and graphs. Finally, more advanced topics such as efficient 1 i. w1 M( d' u- K5 l4 L$ Ostring search algorithms, caching algorithms, and dynamic programming problems are1 M- \6 ?: F& w- p- q
explored in great detail. + A) ^, G3 b' H/ y' \) I) g- Z3 s1 r- Z1 K! E
3 x# A0 S9 J2 L9 _6 r