What this book covers
Chapter 1, JavaScript – A Quick Overview, covers the basics of JavaScript you need to know prior to learning about data structures and algorithms. It also covers setting up the development environment needed for this book.
Chapter 2, Arrays, explains how to use the most basic and most used data structure arrays. This chapter demonstrates how to declare, initialize, add, and remove elements from an array. It also covers how to use the native JavaScript array methods.
Chapter 3, Stacks, introduces the stack data structure, demonstrating how to create a stack and how to add and remove elements. It also demonstrates how to use stacks to solve some Computer Science problems.
Chapter 4, Queues, covers the queue data structure, demonstrating how to create a queue and add and remove elements. It also demonstrates how to use queues to solve some Computer Science problems and the major differences between queues and stacks.
Chapter 5, Linked Lists, explains how to create the linked list data structure from scratch using objects and the pointer concept. Besides covering how to declare, create, add, and remove elements, it also covers the various types of linked lists such as doubly linked lists and circular linked lists.
Chapter 6, Sets, introduces the set data structure and how it can be used to store non-repeated elements. It also explains the different types of set operations and how to implement and use them.
Chapter 7, Dictionaries and Hashes, explains the dictionary and hash data structures and the differences between them. This chapter covers how to declare, create, and use both data structures. It also explains how to handle collisions in hashes and techniques to create better hash functions.
Chapter 8, Trees, covers the tree data structure and its terminologies, focusing on binary search tree data as well as the methods trees use to search, traverse, add, and remove nodes. It also introduces the next steps you can take to delve deeper into the world of trees, covering what tree algorithms should be learned next.
Chapter 9, Graphs, introduces the amazing world of the graphs data structure and its application in real-world problems. This chapter covers the most common graph terminologies, the different ways of representing a graph, how to traverse graphs using the breadth-first search and depth-first search algorithms, and its applications.
Chapter 10, Sorting and Searching Algorithms, explores the most used sorting algorithms such as bubble sort (and its improved version), selection sort, insertion sort, merge sort, and quick sort. It also covers searching algorithms such as sequential and binary search.
Chapter 11, More About Algorithms, introduces some algorithm techniques and the famous big-O notation. It covers the recursion concept and some advanced algorithm techniques such as dynamic programming and greedy algorithms. This chapter introduces big-O notation and its concepts. Finally, it explains how to take your algorithm knowledge to the next level. This is an online chapter available on the Packt Publishing website. You can download it from https://www.packtpub.com/sites/default/files/downloads/4874OS_Chapter11_More_About_Algorithms.pdf.
Appendix, Big-O Cheat Sheet, lists the complexities of the algorithms (using big-O notation) implemented in this book. This is also an online chapter, which can be downloaded from https://www.packtpub.com/sites/default/files/downloads/4874OS_Appendix_Big_O_Cheat_Sheet.pdf.