html5实现树形结构,JavaScript 实现树结构 (一)

JavaScript 实现树结构 (一)

JavaScript 实现树结构(一)

一, 树结构简介

1.1. 简单了解树结构

什么是树?

真实的树:

ab7653affab982b574eb7acc55df2e04.gif

树的特点:

树一般都有一个根, 连接着根的是树干;

树干会发生分叉, 形成许多树枝, 树枝会继续分化成更小的树枝;

树枝的最后是叶子;

现实生活中很多结构都是树的抽象, 模拟的树结构相当于旋转 180° 的树.

ab7653affab982b574eb7acc55df2e04.gif

树结构对比于数组 / 链表 / 哈希表有哪些优势呢:

数组:

优点: 可以通过下标值访问, 效率高;

缺点: 查找数据时需要先对数据进行排序, 生成有序数组, 才能提高查找效率; 并且在插入和删除元素时, 需要大量的位移操作;

链表:

优点: 数据的插入和删除操作效率都很高;

缺点: 查找效率低, 需要从头开始依次查找, 直到找到目标数据为止; 当需要在链表中间位置插入或删除数据时, 插入或删除的效率都不高.

哈希表:

优点: 哈希表的插入 / 查询 / 删除效率都非常高;

缺点: 空间利用率不高, 底层使用的数组中很多单元没有被利用; 并且哈希表中的元素是无序的, 不能按照固定顺序遍历哈希表中的元素; 而且不能快速找出哈希表中最大值或最小值这些特殊值.

树结构:

优点: 树结构综合了上述三种结构的优点, 同时也弥补了它们存在的缺点(虽然效率不一定都比它们高), 比如树结构中数据都是有序的, 查找效率高; 空间利用率高; 并且可以快速获取最大值和最小值等.

总的来说: 每种数据结构都有自己特定的应用场景

树结构:

树 (Tree): 由 n(n ≥ 0) 个节点构成的有限集合. 当 n = 0 时, 称为空树.

对于任一棵非空树(n> 0), 它具备以下性质:

数中有一个称为根 (Root) 的特殊节点, 用 r 表示;

其余节点可分为 m(m> 0)个互不相交的有限集合 T~1~,T~2~,...,T~m~, 其中每个集合本身又是一棵树, 称为原来树的子树(SubTree).

树的常用术语:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值