如何設計出精巧的資料結構?

時間 2021-05-06 19:27:34

1樓:雲悠水澈

這個問題,並不是一篇文章或一本書就能說清楚的,需要對特定問題深入的分析和大量的練習,建議多看一些成熟的協議,這些協議中的資料結構基本都很精巧,總結吸收裡面面對問題的設計思想和技巧。核心是:簡練、清楚明白。

比如 iCalendar RFC 5545中怎樣準確標識乙個事務,怎樣處理乙個事務的迴圈.....

比如關係型資料庫,是如何通過分表,避免重複和冗餘...

好的習慣是:概要設計應一定要清晰、簡練,不求完備,根據問題,實現其基礎目的,構建乙個清晰、簡練、堅實的基礎資料結構,命名準確易懂,合乎邏輯。

後續不斷地補充豐滿時,輔助的資料結構可能越來越多,最重要的是保持乙個清晰的結構,讓人清晰地理解、明白。

有些時候難以避免重複和冗餘,甚至是主動利用重複和冗餘來交換速度(包括開發速度),這不可怕,關鍵在於結構上不能過於複雜、混亂,導致這些重複和冗餘不能被快速準確地被識別和理解。

2樓:Milo Yip

首先設計好介面,然後編寫單元測試。如面對新的功能或效能需求,可重構資料結構實現,而重構的必要條件就是有單元測試。如果考慮到效能的話,當然也需要自動化的效能測試。

3樓:LeeMaster

一切資料結構皆CURD,目前來看主要優化R和C,也就是查詢和插入,結合一些計算機底層知識你也可以做Btree(HDD)或者LSMTree(優化寫),SkipList(log查詢鍊錶),RBTree(HashMap的鍊錶之類的東西啦

資料結構如何一天速成?

小人物 一天速成的話據我猜測你是為了應付期末考試的吧。簡單來說你都不用按照課本上的目錄來學了。你都想一天速成了你也別想什麼高分了,除非你在想屁吃。如果真的想一天速成的話,那麼對於這種考試的話,最簡單的就是會做題。說的通俗點,把資料結構的考試題整的越多越好,一天內把每個題都搞會了就行,當然這一天你連玩...

公交路線如何使用資料結構儲存?

以帶時刻表的火車線路查詢為例,介紹圖的設計,不帶時刻表的話會簡單很多 節點結構 包含時間和地點兩個資訊 以及節點 地點型別 比如5 00在地點 經緯度 X,6 00在A車站門口,6 30在火車上B站 節點型別可能包括 任意的座標XY,車站前,火車上某站 連線結構 包含起始節點,終結節點,費用 以及連...

如何設計資料結構和演算法,計算並儲存六度好友關係?

杜傳贏 這是乙個非常有趣的問題,現實工程中也被人實現較多,其實不是那麼的難 最關鍵的優化點其實是 1.雙向廣搜,把六度直接降為三度,計算量一下就減化非常非常的多了,雖然其實還是指數級的複雜度.2.快取二度 三度好友的結果,用空間換時間 1.能否快速獲取任意兩個使用者的好友關係度數 最大為六 能,假設...