A data structure is a way of organizing information for purpose of reducing space, time and complexities of performing action. On this page I've created examples of common data structures using ES2015 classes.
    class BinaryTree {
      constructor(value) {
        this.value = value;
        this.left;
        this.right;
      }
      insert(value) {
        const leaf = new Leaf(value);
        (value <= this.value)
          ? (this.left) ? this.left.insert(value) : this.left = leaf
          : (this.right) ? this.right.insert(value) : this.right = leaf;
      }
      contains(value) {
        if (this.value === value) return true;
        if (value < this.value)
          return (this.left) ? this.left.contains(value) : false;
        else
          return (this.right) ? this.right.contains(value) : false;
      }
      remove(value, parent, dir) {
        if (this.value === value) {
          delete parent[dir]
          return true;
        }
        if (value < this.value)
          return (this.left) ? this.left.remove(value, this, 'left') : false;
        else
          return (this.right) ? this.right.remove(value, this, 'right') : false;
      }
      max() {
        return (this.right) ? this.right.max() : this.value;
      }
      min() {
        return (this.left) ? this.left.min() : this.value;
      }
    }
  
    class Queue {
      enqueue(value) {
        const last = Object.keys(this).pop() || 0,
          next = parseInt(last) + 1;
        this[next] = value;
        return this;
      }
      dequeue() {
        const key = Object.keys(this).shift(),
          value = this[key];
        delete this[key];
        return value;
      }
    }
  
    class Stack {
      push(value) {
        const last = Object.keys(this).pop() || 0,
          next = parseInt(last) + 1;
        this[next] = value;
        return this;
      }
      pop() {
        const last = Object.keys(this).pop();
        return this[last];
      }
    }