mirror of
https://github.com/trekhleb/javascript-algorithms.git
synced 2026-03-13 08:51:02 +08:00
Use Map for node meta data.
This commit is contained in:
@@ -3,14 +3,15 @@ import Comparator from '../../utils/comparator/Comparator';
|
||||
export default class BinaryTreeNode {
|
||||
/**
|
||||
* @param {*} [value] - node value.
|
||||
* @param {Object} meta - any meta information that needs to be attached to the node.
|
||||
*/
|
||||
constructor(value = null, meta = {}) {
|
||||
constructor(value = null) {
|
||||
this.left = null;
|
||||
this.right = null;
|
||||
this.parent = null;
|
||||
this.value = value;
|
||||
this.meta = meta;
|
||||
|
||||
// Any node related meta information may be stored here.
|
||||
this.meta = new Map();
|
||||
|
||||
// This comparator is used to compare binary tree nodes with each other.
|
||||
this.nodeComparator = new Comparator();
|
||||
@@ -157,29 +158,6 @@ export default class BinaryTreeNode {
|
||||
return traverse;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} property
|
||||
* @param {*} value
|
||||
* @return {BinaryTreeNode}
|
||||
*/
|
||||
setMeta(property, value) {
|
||||
this.meta[property] = value;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param property
|
||||
* @return {*}
|
||||
*/
|
||||
getMeta(property) {
|
||||
if (!this.meta || !Object.prototype.hasOwnProperty.call(this.meta, property)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.meta[property];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user