Book Image

Learning JavaScript Data Structures and Algorithms - Third Edition

Book Image

Learning JavaScript Data Structures and Algorithms - Third Edition

Overview of this book

A data structure is a particular way of organizing data in a computer to utilize resources efficiently. Data structures and algorithms are the base of every solution to any programming problem. With this book, you will learn to write complex and powerful code using the latest ES 2017 features. Learning JavaScript Data Structures and Algorithms begins by covering the basics of JavaScript and introduces you to ECMAScript 2017, before gradually moving on to the most important data structures such as arrays, queues, stacks, and linked lists. You will gain in-depth knowledge of how hash tables and set data structures function as well as how trees and hash maps can be used to search files in an HD or represent a database. This book serves as a route to take you deeper into JavaScript. You’ll also get a greater understanding of why and how graphs, one of the most complex data structures, are largely used in GPS navigation systems in social networks. Toward the end of the book, you’ll discover how all the theories presented in this book can be applied to solve real-world problems while working on your own computer networks and Facebook searches.
Table of Contents (22 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Creating a Set class


ECMAScript 2015 introduced the Set class as part of the JavaScript API, and you will learn how to use this later on in this chapter. We will create our own implementation of the Set class based on the ES2015Set class. We will also implement some set operations such as union, intersection, and difference, that are not present in the ES2015 native class.

To get started, the following is the Set class declaration with its constructor:

class Set {
  constructor() {
    this.items = {};
  }
} 

A very important detail here is that we are using an object to represent our set (items) instead of an array. However, we could also use an array in this implementation. The approach we will follow in this chapter is very similar to the items object approach we used in Chapter 4, Stacks, and Chapter 5, Queues and Deques. Also, objects in JavaScript do not allow you to have two different properties on the same key, which guarantees unique elements in our set.

Next, we need to declare the...