Preface

JavaScript is currently the most popular programming language. It is known as "the Internet language" due to the fact that Internet browsers understand JavaScript natively, without installing any plugins. JavaScript has grown so much that it is no longer just a frontend language; it is now also present on the server (Node.js) and database as well (MongoDB).

Understanding data structures is very important for any technology professional. Working as a developer means you have the ability to solve problems with the help of programming languages and data structures. They are an indispensable piece of the solutions we need to create to solve these problems. Choosing the wrong data structure can also impact the performance of the program we are writing. This is why it is important to get to know different data structures and how to apply them properly.

Algorithms play a major role in the art of Computer Science. There are so many ways of solving the same problem, and some approaches are better than others. That is why it is also very important to know the most famous algorithms.

Happy coding!

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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset