嚴蔚敏的數(shù)據(jù)結(jié)構(gòu)太難了 一個實力超群的程序猿必須知道的數(shù)據(jù)結(jié)構(gòu)有哪些?
一個實力超群的程序猿必須知道的數(shù)據(jù)結(jié)構(gòu)有哪些?算法圖搜索 (廣度優(yōu)先、深度優(yōu)先)深度優(yōu)先特別重要排序動態(tài)規(guī)劃匹配算法和網(wǎng)絡(luò)流算法正則表達式和字符串匹配數(shù)據(jù)結(jié)構(gòu)圖 (樹尤其重要)Map堆棧/隊列Trie
一個實力超群的程序猿必須知道的數(shù)據(jù)結(jié)構(gòu)有哪些?
算法
- 圖搜索 (廣度優(yōu)先、深度優(yōu)先)深度優(yōu)先特別重要
- 排序
- 動態(tài)規(guī)劃
- 匹配算法和網(wǎng)絡(luò)流算法
- 正則表達式和字符串匹配
數(shù)據(jù)結(jié)構(gòu)
- 圖 (樹尤其重要)
- Map
- 堆
- 棧/隊列
- Tries | 字典樹
額外推薦
- 貪婪算法
- 概率方法
- 近似算法
下面這個沒有特定優(yōu)先級
算法:
- 三路劃分-快速排序
- 合并排序(更具擴展性,復雜度類似快速排序)
- DF/BF 搜索 (要知道使用場景)
- Prim / Kruskal (最小生成樹)
- Dijkstra (最短路徑算法)
- 選擇算法
數(shù)據(jù)結(jié)構(gòu)
- HashMap (真的要知道所有哈希結(jié)構(gòu))
- 圖和樹(紅黑樹很好學) (red-black trees are good to learn)
- 堆(優(yōu)先級隊列)
- 棧/隊列(必須知道的基礎(chǔ)內(nèi)容)
- Tries | 字典樹
A *和遺傳算法也很有趣。
我現(xiàn)在沒學完C語言,但是學校已經(jīng)開了數(shù)據(jù)結(jié)構(gòu)課程,感覺像聽天書一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?
第一,我覺得作為一個大學生,自學能力很強。對于C語言沒有學完,可以自己抽時間認真學會。不會的可以到圖書館查閱資料,或者上網(wǎng)也可以自學?,F(xiàn)在網(wǎng)絡(luò)平臺有好多優(yōu)質(zhì)資源,你可以試試。
第二,數(shù)據(jù)結(jié)構(gòu)的算法比較抽象,必須認真研究。他是編程序的依據(jù),這與C語言沒有必然的聯(lián)系。只是用C語言可以實現(xiàn)一些算法。也可以用別的語言實現(xiàn)。
第三,要對自己有信心。不會的問題可以和老師,同學交流。既然選擇好專業(yè),就應該深入研究。
這就是我的一些看法,希望能夠幫到你!