Topic Overview

Welcome to our exploration of sorted maps using custom classes and comparators in JavaScript. In today's lesson, we'll learn how to use custom classes as keys in sorted maps. This approach enhances data organization and access. Since JavaScript does not have direct support for sorted maps, we'll use a Binary Search Tree (BST) to achieve this functionality by leveraging the @datastructures-js/binary-search-tree library.

Introduction to Custom Classes in JavaScript

Custom classes enable us to create objects that fit our data — for instance, a Person class for employee information or a Book class for a library database. In JavaScript, classes are the blueprints for creating objects.

Consider this simple class, for example:

Using Custom Classes with Binary Search Trees

Using custom classes helps organize complex multivariate data. We will use the @datastructures-js/binary-search-tree library to maintain our data in a sorted order. Below is an example of how to use comparators to dictate the order when using custom classes with this binary search tree:

In-order traversal is a method of traversing a binary search tree where nodes are visited in ascending order. This means visiting the left subtree first, then the current node, and finally the right subtree. This ensures that data is accessed sequentially, from the smallest to the largest value.

Comparators and Their Role in Binary Search Trees

JavaScript uses comparison functions to determine the order of two keys. To make this comparison, we add a compare method to our class. This method will be used within our binary search tree to maintain the order of keys during insertion.

Below is another example of how to incorporate a different comparator:

Lesson Summary and Practice

We've explored how to use custom classes as keys in binary search trees and how comparators work in this context. Now, prepare for some hands-on exercises to reinforce these concepts.

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal