持续拓展中。。。2020-06-30
一、参考资料:
二、总结、底层 1:
- 落实到磁盘层面思考角度让问题更复杂:
1、同属线性结构的数组、栈、列队和链表有巨大的区别:数组在元素插入时要移动硬盘的存储单元,链表不用,所以链表在插入、删除有大优势
2、同样是树结构,b树就是考虑到磁盘的实际存储方式(1扇区读写最小单位 = 512字节最小存储单位 = 8bit 存储器最小单位只能表达01),为了最大化使用读写IO才升级了2叉树为b树。b树也使用指针(链子)指向其他磁盘扇区。(2-3树是特殊的b树,是一种极限思维的结果,可以很好的理解b树)
3、b+树 = b树 + 链接(指针,这个指针不同b树的指针,是为数据内容做指针),也是在考虑磁盘的使用方式。
三、结构:
1、逻辑结构:
- 线性
a、线性表
b、链表(单向、双向) - 非线性
2、物理结构:
数组(Array)
栈( Stack)
队列(Queue)
链表( Linked List)
树( Tree)
图(Graph)
堆(Heap)
散列表(Hash)
3、存储结构(我认为应属物理结构):
以后就用底层来代表基础、核心内容的意思。因为我认为万事万物都有隐藏在底层的一条核心脉络。 ↩︎