對(duì)數(shù)據(jù)結(jié)構(gòu)的認(rèn)識(shí)和看法 我現(xiàn)在沒學(xué)完C語言,但是學(xué)校已經(jīng)開了數(shù)據(jù)結(jié)構(gòu)課程,感覺像聽天書一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?
我現(xiàn)在沒學(xué)完C語言,但是學(xué)校已經(jīng)開了數(shù)據(jù)結(jié)構(gòu)課程,感覺像聽天書一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?第一,我覺得作為一個(gè)大學(xué)生,自學(xué)能力很強(qiáng)。對(duì)于C語言沒有學(xué)完,可以自己抽時(shí)間認(rèn)真學(xué)會(huì)。不會(huì)的可以到圖書館查閱
我現(xiàn)在沒學(xué)完C語言,但是學(xué)校已經(jīng)開了數(shù)據(jù)結(jié)構(gòu)課程,感覺像聽天書一樣,如何更好地理解數(shù)據(jù)結(jié)構(gòu)?
第一,我覺得作為一個(gè)大學(xué)生,自學(xué)能力很強(qiáng)。對(duì)于C語言沒有學(xué)完,可以自己抽時(shí)間認(rèn)真學(xué)會(huì)。不會(huì)的可以到圖書館查閱資料,或者上網(wǎng)也可以自學(xué)?,F(xiàn)在網(wǎng)絡(luò)平臺(tái)有好多優(yōu)質(zhì)資源,你可以試試。
第二,數(shù)據(jù)結(jié)構(gòu)的算法比較抽象,必須認(rèn)真研究。他是編程序的依據(jù),這與C語言沒有必然的聯(lián)系。只是用C語言可以實(shí)現(xiàn)一些算法。也可以用別的語言實(shí)現(xiàn)。
第三,要對(duì)自己有信心。不會(huì)的問題可以和老師,同學(xué)交流。既然選擇好專業(yè),就應(yīng)該深入研究。
這就是我的一些看法,希望能夠幫到你!
為什么剛?cè)腴T的程序員沒有感覺到算法和數(shù)據(jù)結(jié)構(gòu)的重要性?
關(guān)于這個(gè)問題,首先我要非常遺憾的和你講兩點(diǎn)。
第一,能夠問出這個(gè)問題,說明你還不是程序員。只能說,你是一個(gè)剛剛開始嘗試學(xué)習(xí)編程的人(哪怕你有了一份編程的工作,也無法改變這一點(diǎn))。這就好比說,一個(gè)剛剛學(xué)了三個(gè)月吉他的人,不能稱呼自己為吉他手一樣(但是可以說自己是彈吉他的,或者吉他愛好者)。
第二,非常遺憾地告訴你,你還沒有入門。入門的前提條件之一,我認(rèn)為和這個(gè)問題就有關(guān),那就是理解了程序其實(shí)就是算法 數(shù)據(jù)結(jié)構(gòu)。所以你說你是入門的程序員,卻沒有感覺到算法和數(shù)據(jù)結(jié)構(gòu)的重要性,那么我請(qǐng)問,除了算法和數(shù)據(jù)結(jié)構(gòu),程序里還有什么是重要的。
不要狹義地去理解算法,認(rèn)為算法就是排序算法、查找算法這些,以及認(rèn)為數(shù)據(jù)結(jié)構(gòu)就是數(shù)組、鏈表、哈希表、圖等等。這些,是經(jīng)典算法和經(jīng)典數(shù)據(jù)結(jié)構(gòu)。
你寫的程序,完全可以沒有任何這些經(jīng)典的數(shù)據(jù)結(jié)構(gòu)和算法,那么,你的程序里就沒有算法和數(shù)據(jù)結(jié)構(gòu)了嗎?你的程序要解決一個(gè)問題,或者做一些事情。這些事情,你首先要建立在計(jì)算機(jī)世界中的模型,這個(gè)模型就是數(shù)據(jù)結(jié)構(gòu)。基于這樣的一些數(shù)據(jù),你的程序要執(zhí)行一些指令,這些指令作為整體就是算法。因此,程序=算法 數(shù)據(jù)結(jié)構(gòu),就是從這種廣義上來說的。
也正是因?yàn)椤俺绦?算法 數(shù)據(jù)結(jié)構(gòu)”,所以,抽離了算法和數(shù)據(jù)結(jié)構(gòu),程序就連渣都不剩了。至于算法和數(shù)據(jù)結(jié)構(gòu)的關(guān)系,這里就不展開講了。簡(jiǎn)單說就是沒有數(shù)據(jù),算法就沒有了對(duì)象和根基。而數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和合理性會(huì)影響到算法。
為什么你沒有感覺到這一點(diǎn)呢?答案就是我的回答開頭寫的那兩點(diǎn)。我說的貌似有點(diǎn)殘酷,但是其實(shí)也沒什么,繼續(xù)學(xué)習(xí)就是了。
程序員是需要終生學(xué)習(xí)的。