js--数据结构--树

本文介绍了JavaScript中树数据结构的实现,包括Node和Tree的构造函数,详细讲解了树的遍历方法如DFS和BFS,搜索节点、添加节点和删除节点的操作,并通过实例演示了这些方法的应用。
摘要由CSDN通过智能技术生成
1.树的构造函数
1.1 Node

属性:

data存储的值
parent指向节点的父节点
children指向许多孩子节点

Node构造函数:

function Node(data) {
   
    this.data = data;
    this.parent = null;
    this.children = [];
}
1.2Tree

属性和方法:

root:指向一棵树的根节点
deepTraversal(callback,node):遍历与DFS树的节点
widthTraversal(callback,node):遍历与BFS树的节点
contasins(data,traversal)搜索树中的节点
add(data,toData,traverse)将节点添加到一棵树
remove(child,parent)在一棵树中删除一个节点

Tree构造函数:

先创建一个新实例的Node,随后指派node作为树的根

function Tree (data) {
   
    var node = new Node(data);
    this._root = node;
}
1.3创建tree
var tree = new Tree('CEO');
tree._root;//{
  data:'CEO',parent:null,children:[]}
2.一个树的方法
2.1 traverseDF(callback)遍历与DFS树的节点
//深度遍历
Tree.prototype.deepTraversal =  function(callback,node){
   
    var nodes = [];
    if (node != null) {
        var stack = [];
        stack.push(node);
        while (stack.length != 0) {
            var item = stack.pop();
            callback(item);
            nodes.push(item);
            var children = item.children;
            for (var i = children.length - 1; i >= 0; i--)
                stack.push(children[i]);
        }
    }
    return nodes;
};

举例

var tree = new Tree('one');

tree._root.children.push(new</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值