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