The motivation for writing this book was the lack of resources available about data 8 J( ~8 J# l( I! q5 G* J5 Astructures and algorithms written in JavaScript. This was strange to me because3 { w) J: ^# n" q7 l% \ q2 h
today many of the job opportunities for software development require knowledge of) ?3 K4 W1 S" W- K: \4 V
JavaScript; it is the only language that can be used to write the entire stack, including the ( Q8 ]- H% `5 M9 a0 Nfront-end, mobile (native and hybrid) platforms, and back-end. It is crucial for JavaScript; r7 o Z! s( v1 B( W
developers to understand how data structures work and how to design algorithms to9 v M, I- [) g4 p6 r4 w
build applications. 2 T; k! d8 C! Y0 u. @8 UTherefore, this book aims to teach data structure and algorithm concepts from ' l8 p* y5 Z: v9 z4 b2 q+ M$ Q4 Z$ ~computer science for JavaScript rather than for the more typical Java or C++. Because ; u. o3 L: e, \% a2 {% G0 ?JavaScript follows the prototypal inheritance pattern, unlike Java and C++ (which follow/ x( I3 r0 }' ~% T+ x0 H+ S4 ^8 F
the inheritance pattern), there are some changes in writing data structures in JavaScript.% s4 ^7 S- k& m9 k) z
The classical inheritance pattern allows inheritance by creating a blueprint-like ) {( s& c& ^# a v% ^form1 H: k0 R0 A7 h# W
that objects follow during inheritance. However, the prototypal inheritance pattern * H+ P/ v9 B$ `1 r9 Kmeans copying the objects and changing their properties. , Y- a6 b7 b: B+ bThis book first covers fundamental mathematics for Big-O analysis and then lays out7 z: ]5 V$ ^) @
the basic JavaScript foundations, such as primitive objects and types. Then, this book0 T* e( c( T0 n$ K9 ^0 g+ o1 u- u
covers implementations and algorithms for fundamental data structures such as linked. E) f7 y" N: J( m) n0 T
lists, stacks, trees, heaps, and graphs. Finally, more advanced topics such as efficient. m$ i% i, c/ R' P& M9 g) }
string search algorithms, caching algorithms, and dynamic programming problems are # M4 m4 a" R! g- b( d$ pexplored in great detail.6 u0 J1 l/ v6 e( [" i1 W
$ r: l3 S+ ?& H% Q. V+ E5 L) y5 x: [9 `5 r s7 a2 m