tree树形结构添加level
时间: 2023-09-02 17:13:03 浏览: 132
在树形结构中添加level可以通过DFS(深度优先遍历)或BFS(广度优先遍历)的方式进行。这里以DFS为例进行说明:
假设我们有一个树形结构的数据,其中每个节点包含一个id和一个children数组,children数组中存放着该节点的子节点。我们可以通过递归遍历整个树形结构,给每个节点添加一个level属性,表示该节点所处的层级。具体代码如下:
```
function addLevel(node, level) {
node.level = level;
if (node.children) {
for (let child of node.children) {
addLevel(child, level + 1);
}
}
}
// example data
const tree = {
id: 1,
children: [
{
id: 2,
children: [
{ id: 4 },
{ id: 5 },
],
},
{
id: 3,
children: [
{ id: 6 },
{ id: 7 },
],
},
],
};
// add level to tree
addLevel(tree, 0);
// output tree with level
console.log(JSON.stringify(tree, null, 2));
```
在上述代码中,我们定义了一个addLevel函数,该函数接受两个参数,一个是当前节点,另一个是当前节点所处的层级level。在函数内部,我们首先给当前节点添加level属性,并判断该节点是否有子节点,如果有,则递归调用addLevel函数,将当前节点的子节点和当前层级level+1传递给函数。最后我们将树形结构输出到控制台,可以看到每个节点都已经添加了level属性,表示该节点所处的层级。
阅读全文