线性结构的优劣
线性结构:元素之间都有一个自然的线性次序
基于数组的实现
- 优点:常数时间内查找
- 缺点:线性时间内移动(插入,删除)
基于链表的实现
- 有点:常数时间内移动
- 缺点:线性时间内查找
如何中和两种的优缺点 ——> 树结构(半线性结构)
树结构的特点和解决的问题
半线性结构(semi-linear structure)
非线性性质在于:并不直接存在天然的直接后继和直接前驱关系
譬如说:某个节点的前面是什么,后面是什么这个并不是唯一确定的。
而是取决于遍历方式:前序遍历、中序遍历、后序这些。
线性性质在于:附加某种约束(遍历),也可以在树中的元素之间确定某种线性次序,譬如前面说的几种遍历。
分层结构:树的层次化特征蕴含于所有事物及其联系中,成为本质属性之一。
树解决的问题:希望以一种“折中”的方式来同时满足一定效率下的动态修改和静态查找。
搜索树家族概览
搜索树家族主要用于在不同的场景下解决如下问题:
- 高效率的动态修改
- 高效率的静态查找
于是下面就是具体的数据结构。
二叉树(BinTree)
普通二叉树
二叉搜索树(BST)
普通二叉搜索树
平衡的二叉搜索树
- AVL 树
- 伸展树(Splay)
- 红黑树(RedBlack)
B 树
- 普通 B 树
- B+ 树
Kd-Tree
书这里有一个简单的图可以看:
查找的概念
地方地方的
地方了
地方
的发
打发打发地方地方
地方地方地方
的房间里的房间里地方
零九分
但是,但卢卡库砥砺奋进
的的浪费精力的空间 砥砺奋进的了开发拉动房价了 的飞机轮番 的风景
的的离开家里
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于