电竞比分网-中国电竞赛事及体育赛事平台

分享

C++數(shù)據(jù)結(jié)構(gòu)怎么學(xué)習(xí)?

 碼農(nóng)9527 2021-04-07

學(xué)會(huì)數(shù)據(jù)結(jié)構(gòu);

    導(dǎo)學(xué)階段。

    最初并沒(méi)有直接看書(shū),而是先打算先看視頻,因?yàn)橐曨l比較好理解啊,找視頻的方法就是百度,所以當(dāng)時(shí)找到的最好資源就是開(kāi)課吧的教程,但對(duì)小白來(lái)說(shuō)還是夠的,特別基礎(chǔ),講得非常仔細(xì)。

    這是一個(gè)很好的例子,從最開(kāi)始的陣列、線(xiàn)性表,到后面的棧和隊(duì)列,再到更復(fù)雜的二叉樹(shù)、圖表、散列表,大概有幾十個(gè)視頻,那時(shí)是暑假,我按照每天一個(gè)視頻的進(jìn)度來(lái)看,看的時(shí)候還是要不時(shí)練習(xí),這樣對(duì)理解會(huì)更有幫助。

    讀過(guò)這個(gè)系列的視頻后,我又轉(zhuǎn)而開(kāi)始啃書(shū),視頻中講的都是數(shù)據(jù)結(jié)構(gòu)的基本知識(shí),而書(shū)中除了基本知識(shí)外,還有一些算法問(wèn)題,比如,你學(xué)習(xí)了線(xiàn)性表和鏈表之后,書(shū)中就會(huì)有相關(guān)的算法問(wèn)題,例如數(shù)組的元素替換,鏈表的倒置等,

c

    加強(qiáng)學(xué)習(xí)階段

    在學(xué)習(xí)完第一個(gè)視頻+書(shū)本后,我們應(yīng)該已經(jīng)對(duì)數(shù)據(jù)結(jié)構(gòu)有了初步的了解,對(duì)一些簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)算法也應(yīng)該有所了解,例如數(shù)據(jù)棧的入棧和出棧,隊(duì)列的進(jìn)組和出組,二叉樹(shù)的先序遍歷和后續(xù)遍歷,層次遍歷,圖的最短路徑算法,深度優(yōu)先遍歷等等。

    具備一定的基礎(chǔ)后,我們需要從哪些方面加強(qiáng)學(xué)習(xí)呢?

    這要看你學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的目的是什么了,比如你學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了做算法題,那么你就應(yīng)該把重點(diǎn)放在學(xué)習(xí)算法上,后面我們還會(huì)有一篇關(guān)于如何學(xué)習(xí)算法的文章,敬請(qǐng)關(guān)注。

    當(dāng)然,當(dāng)時(shí)我主要是復(fù)習(xí)考研,所以還是以專(zhuān)業(yè)課歷年真題為主,像我們的卷子里就有很多關(guān)于哈希表,最短路徑算法,KMP算法,Huffman算法和最短路徑算法的應(yīng)用。

    對(duì)試卷上的一些知識(shí)點(diǎn),我覺(jué)得掌握得不太好,就買(mǎi)了《王道數(shù)據(jù)結(jié)構(gòu)》和一些沒(méi)啥卵用的書(shū)回來(lái)看,再次強(qiáng)化了基礎(chǔ)。

    而且,由于我們的復(fù)考通常是對(duì)一些比較經(jīng)典的算法問(wèn)題進(jìn)行考察,所以我又花了大量的時(shí)間來(lái)學(xué)習(xí)這些算法題,而這些并不是數(shù)據(jù)結(jié)構(gòu)的基本算法,所以可能無(wú)法在以前的書(shū)籍和視頻中找到答案。

    所以我又在網(wǎng)上搜到了另一個(gè)系列的視頻“小甲魚(yú)的數(shù)據(jù)結(jié)構(gòu)視頻”,里面除了講解數(shù)據(jù)結(jié)構(gòu)外,還講解了更多的經(jīng)典算法題目,比如八皇后問(wèn)題、漢諾塔問(wèn)題、馬踏棋問(wèn)題、商旅問(wèn)題等等,這些對(duì)于初學(xué)者來(lái)說(shuō)真的是很難的,通過(guò)視頻學(xué)習(xí)效果更好。

    實(shí)習(xí)階段

    紙上談兵終覺(jué)淺薄,絕知此事要躬身。大家都知道,算法題和數(shù)學(xué)題一樣,需要多加練習(xí),而且考研時(shí)還要手寫(xiě)算法,所以我經(jīng)常在紙上寫(xiě)(抄)算法,別說(shuō)你,就是抄,多抄幾遍也有助于理解。

    有許多基本算法,如層次遍歷、深度優(yōu)先遍歷、廣度優(yōu)先遍歷、多寫(xiě)一些遍歷,以及稍微復(fù)雜一些的Dejerstra算法等,如果不多寫(xiě)一些遍歷,你真的記不住。

    當(dāng)然,除了寫(xiě)在紙上,更好的方法是在電腦上敲鍵盤(pán),寫(xiě)Java用Java,寫(xiě)C++用C++寫(xiě),總之,就是用自己擅長(zhǎng)的語(yǔ)言實(shí)現(xiàn),尷尬的是,我當(dāng)時(shí)只會(huì)寫(xiě)c,所以只能老老實(shí)實(shí)用devc++編寫(xiě)簡(jiǎn)單的c語(yǔ)言程序。

    此時(shí),我們也算是學(xué)到了數(shù)據(jù)結(jié)構(gòu)的基本知識(shí),至少了解了每一種數(shù)據(jù)結(jié)構(gòu)的特征,會(huì)寫(xiě)通用的數(shù)據(jù)結(jié)構(gòu)算法。

    推薦資源

    書(shū)籍。

    如果你正準(zhǔn)備考研,那么“天勤數(shù)據(jù)結(jié)構(gòu)”“王道數(shù)據(jù)結(jié)構(gòu)”這兩本書(shū)可別錯(cuò)過(guò)。

    嚴(yán)蔚敏《數(shù)據(jù)結(jié)構(gòu)與C語(yǔ)言版本》是一本大學(xué)本科計(jì)算機(jī)專(zhuān)業(yè)常用的教材,可查閱,官方也有配套教學(xué)錄像。

    《大話(huà)數(shù)據(jù)結(jié)構(gòu)》官方教材大家都懂,比較不接地氣,這本書(shū)對(duì)很多新手來(lái)說(shuō)是比較適合入門(mén)的。

    如果你是學(xué)Java的,并且想要一本Java語(yǔ)言描述的數(shù)據(jù)結(jié)構(gòu)方面的書(shū),你可以試試這本,但是這本書(shū)明顯比較復(fù)雜,而且不適合作為入門(mén)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多