树(Tree)是一种常见的数据结构,它模拟了一种层次关系,每个节点可以有零个或多个子节点,但每个节点只有一个父节点(除了根节点,它没有父节点)。在JavaScript中,树结构可以通过对象和数组来实现。
class TreeNode {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
class BinaryTree {
constructor() {
this.root = null;
}
insert(value) {
const newNode = new TreeNode(value);
if (this.root === null) {
this.root = newNode;
} else {
this.insertNode(this.root, newNode);
}
}
insertNode(node, newNode) {
if (newNode.value < node.value) {
if (node.left === null) {
node.left = newNode;
} else {
this.insertNode(node.left, newNode);
}
} else {
if (node.right === null) {
node.right = newNode;
} else {
this.insertNode(node.right, newNode);
}
}
}
}
// 使用示例
const tree = new BinaryTree();
tree.insert(10);
tree.insert(5);
tree.insert(15);
tree.insert(3);
tree.insert(7);
树是一种强大的数据结构,适用于多种场景。在实际应用中,选择合适的树类型和维护树的平衡是关键。