标题: JavaScript Data Structures and Algorithms超经典的算法书! [打印本页] 作者: madio 时间: 2020-2-25 12:21 标题: JavaScript Data Structures and Algorithms超经典的算法书! The motivation for writing this book was the lack of resources available about data + T, u' }, S3 f4 f: [( U+ Lstructures and algorithms written in JavaScript. This was strange to me because 2 i1 L4 p' `7 d1 itoday many of the job opportunities for software development require knowledge of% E- @ c, @* `
JavaScript; it is the only language that can be used to write the entire stack, including the " m" D/ W8 i$ H; c* W1 a+ q7 Afront-end, mobile (native and hybrid) platforms, and back-end. It is crucial for JavaScript $ I6 V9 `- W; i' q" A/ Fdevelopers to understand how data structures work and how to design algorithms to4 q( D" t( J% Z# |$ _
build applications.$ S6 S ?' Q$ N( p5 ^
Therefore, this book aims to teach data structure and algorithm concepts from( L6 D t- D( @
computer science for JavaScript rather than for the more typical Java or C++. Because. I7 J2 f# H6 @7 _- S
JavaScript follows the prototypal inheritance pattern, unlike Java and C++ (which follow2 z- S0 \* g+ y" @1 H$ d7 a/ ~
the inheritance pattern), there are some changes in writing data structures in JavaScript.& Z [5 p+ a! y) F' l/ I4 H
The classical inheritance pattern allows inheritance by creating a blueprint-like! \: q- E: {7 h4 k1 q3 G* S" f1 A0 t, }
form: E+ x+ J3 Y9 _# ^, d2 c
that objects follow during inheritance. However, the prototypal inheritance pattern 9 o8 W" K# t4 [) ?means copying the objects and changing their properties.& V2 f( c7 G7 u$ U
This book first covers fundamental mathematics for Big-O analysis and then lays out) J* N2 i) Y" J5 o, c. D
the basic JavaScript foundations, such as primitive objects and types. Then, this book2 Q @$ g: S }8 l4 h/ R$ l2 d
covers implementations and algorithms for fundamental data structures such as linked, H' H; q. }" P" O4 X0 E
lists, stacks, trees, heaps, and graphs. Finally, more advanced topics such as efficient# E5 y0 j Q$ _: n% F
string search algorithms, caching algorithms, and dynamic programming problems are: Z- c6 v8 P% f' c$ ^$ l: y
explored in great detail. A) W k. f5 `9 x6 t+ G- R+ @0 z- g- z3 f( g/ g* p
8 [( z) \1 \, ]4 D0 `