js(JavaScript)数据结构之树(Tree)
在JavaScript中,树是一种常见的数据结构,它可以用来表示层级关系。下面是一个简单的树结构实现,以及如何使用它的示例代码。
class TreeNode {
constructor(value) {
this.value = value;
this.children = [];
}
addChild(childNode) {
this.children.push(childNode);
}
}
class Tree {
constructor() {
this.root = null;
}
addNode(value) {
const newNode = new TreeNode(value);
if (!this.root) {
this.root = newNode;
}
return newNode;
}
traverse(callback) {
function traverseNode(node) {
callback(node.value);
node.children.forEach((child) => {
traverseNode(child);
});
}
if (this.root) {
traverseNode(this.root);
}
}
}
// 使用示例
const tree = new Tree();
const node1 = tree.addNode('A');
const node2 = tree.addNode('B');
const node3 = tree.addNode('C');
const node4 = tree.addNode('D');
const node5 = tree.addNode('E');
node1.addChild(node2);
node1.addChild(node3);
node2.addChild(node4);
node2.addChild(node5);
tree.traverse((value) => console.log(value)); // 输出树的节点值
这段代码首先定义了一个TreeNode
类来表示树中的节点,每个节点可以有多个子节点。然后定义了一个Tree
类,它可以添加节点,并且提供了一个遍历整棵树的方法。最后,我们创建了一个树,添加了节点并构建了节点之间的层级关系,并使用traverse
方法遍历了整棵树,打印出每个节点的值。
评论已关闭