数组
堆
栈
真正的动态数据结构,不需要处理固定容量的问题,你需要多个个数据,就生成多少个节点, 将它们挂接起来,这就是它的动态。
同时它不能像数组那样有随机访问元素的能力,从底层机制上,数组开辟的空间在内存里连续分布的,所以可以直接找这个索引的偏移,直接计算出
这数组的内存地址,O(1)的复杂度就将数组拿出来了。但是链表是靠节点一层在计算机的底层每一个节点所在的内存是不同的,必须靠节点一点一点
的寻找元素。
-
链表和数组对比
- 数组最好用于有语义的情况
- 最大的优点是支持快速查询
- 链表不适用于索引有语义的情况
- 最大的优点是动态
递归
二分搜索树