Description
Explore data structures and algorithm concepts and their relation to everyday JavaScript development. A basic understanding of these ideas is essential to any JavaScript developer wishing to analyze and build great software solutions.
You'll discover how to implement data structures such as hash tables, linked lists, stacks, queues, trees, and graphs. You'll also learn how a URL shortener, such as bit.ly, is developed and what is happening to the data as a PDF is uploaded to a webpage. This book covers the practical applications of data structures and algorithms to encryption, searching, sorting, and pattern matching.
It is crucial for JavaScript developers to understand how data structures work and how to design algorithms. This book and the accompanying code provide that essential foundation for doing so. With JavaScript Data Structures and Algorithms you can start developing your knowledge and applying it to your JavaScript projects today.What You'll Learn
- Review core data structure fundamentals: arrays, linked-lists, trees, heaps, graphs, and hash-table
- Review core algorithm fundamentals: search, sort, recursion, breadth/depth first search, dynamic programming, bitwise operators
- Examine how the core data structure and algorithms knowledge fits into context of JavaScript explained using prototypical inheritance and native JavaScript objects/data types
- Take a high-level look at commonly used design patterns in JavaScript
Who This Book Is For
Existing web developers and software engineers seeking to develop or revisit their fundamental data structures knowledge; beginners and students studying JavaScript independently or via a course or coding bootcamp.
Table of Contents
1. Big-O Notation
2. JavaScript: Unique Parts
3. JavaScript Numbers
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