JavaScript实现树结构(一)
JavaScript实现树结构(一) 一、树结构简介 1.1.简单了解树结构 什么是树? 真实的树: 树的特点: 树一般都有一个 根 ,连接着根的是 树干 ; 树干会发生分叉,形成许多 树枝 ,树枝会继续分化成更小的 树枝 ; 树枝的最后是 叶子 ; 现实生活中很多结构都是树的抽象,模拟的树结构相当于旋转 180° 的树。 树结构对比于数组/链表/哈希表有哪些优势呢: 数组: 优点:可以通过 下标值访问 ,效率高; 缺点:查找数据时需要先对数据进行 排序 ,生成 有序数组 ,才能提高查找效率;并且在插入和删除元素时,需要大量的 位移操作 ; 链表: 优点:数据的插入和删除操作效率都很高; 缺点: 查找 效率低,需要从头开始依次查找,直到找到目标数据为止;当需要在链表中间位置插入或删除数据时,插入或删除的效率都不高。 哈希表: 优点:哈希表的插入/查询/删除效率都非常高; 缺点: 空间利用率不高 ,底层使用的数组中很多单元没有被利用;并且哈希表中的元素是 无序 的,不能按照固定顺序遍历哈希表中的元素;而且不能快速找出哈希表中 最大值或最小值 这些特殊值。 树结构: 优点:树结构综合了上述三种结构的优点,同时也弥补了它们存在的缺点(虽然效率不一定都比它们高),比如树结构中数据都是有序的,查找效率高;空间利用率高;并且可以快速获取最大值和最小值等。 总的来说: