docs: function (node, order, callback) {
              if (node) {
                  order = order || Tree.PRE_ORDER;
                  if (order === Tree.PRE_ORDER) {
                      callback(node.data);
                      this.traverse(node.left, order, callback);
                      this.traverse(node.right, order, callback);
                  } else if (order === Tree.IN_ORDER) {
                      this.traverse(node.left, order, callback);
                      callback(node.data);
                      this.traverse(node.right, order, callback);
                  } else if (order === Tree.POST_ORDER) {
                      this.traverse(node.left, order, callback);
                      this.traverse(node.right, order, callback);
                      callback(node.data);
                  } else if (order === Tree.REVERSE_ORDER) {
                      this.traverseWithCondition(node.right, order, callback);
                      callback(node.data);
                      this.traverseWithCondition(node.left, order, callback);
  
                  }
              }
          }