持續拓展中。。。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、存儲結構(我認爲應屬物理結構):
以後就用底層來代表基礎、核心內容的意思。因爲我認爲萬事萬物都有隱藏在底層的一條核心脈絡。 ↩︎