-
Sammie Bae - JavaScript Data Structures and Algorithms - 2019.pdf下载
资源介绍
© Sammie Bae 2019
An Introduction to Understanding and Implementing Core Data Structure and Algorithm Fundamentals
Introduction
The motivation for writing this book was the lack of resources available
about data structures and algorithms written in JavaScript. This was
strange to me because today many of the job opportunities for software
development require knowledge of JavaScript; it is the only language that
can be used to write the entire stack, including the front-end, mobile
(native and hybrid) platforms, and back-end. It is crucial for JavaScript
developers to understand how data structures work and how to design
algorithms to build applications.
Therefore, this book aims to teach data structure and algorithm
concepts from computer science for JavaScript rather than for the more
typical Java or C++. Because JavaScript follows the prototypal inheritance
pattern, unlike Java and C++ (which follow the inheritance pattern),
there are some changes in writing data structures in JavaScript. The
classical inheritance pattern allows inheritance by creating a blueprintlike form that objects follow during inheritance. However, the prototypal
inheritance pattern means copying the objects and changing their
properties.
This book first covers fundamental mathematics for Big-O analysis
and then lays out the basic JavaScript foundations, such as primitive
objects and types. Then, this book covers implementations and
algorithms for fundamental data structures such as linked lists, stacks,
trees, heaps, and graphs. Finally, more advanced topics such as efficient
string search algorithms, caching algorithms, and dynamic programming
problems are explored in great detail.
1. Big-O Notation
2. [removed] Unique Parts
3. JavaScript Num
4. JavaScript Strings
5. JavaScript Arrays
6. JavaScript Objects
7. JavaScript Memory Management
8. Recursion
9. Sets
10. Searching and Sorting
11. Hash Tables
12. Stacks and Queues
13. Linked Lists
14. Caching
15. Trees
16. Heaps
17. Graphs
18. Advanced Strings
19. Dynamic Programming
20. Bit Manipulation