算法和數(shù)據(jù)結(jié)構(gòu)考研真題和答案 數(shù)據(jù)結(jié)構(gòu)與算法之美怎么樣?
數(shù)據(jù)結(jié)構(gòu)與算法之美怎么樣?《數(shù)據(jù)結(jié)構(gòu)與算法之美》是一本優(yōu)秀的書(shū),循序漸進(jìn)地介紹了各種數(shù)據(jù)結(jié)構(gòu)模型以及各種算法的底層原理和應(yīng)用,非常適合計(jì)算機(jī)專業(yè)人士閱讀。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),有什么好的書(shū)籍可以推薦?計(jì)算機(jī)專
數(shù)據(jù)結(jié)構(gòu)與算法之美怎么樣?
《數(shù)據(jù)結(jié)構(gòu)與算法之美》是一本優(yōu)秀的書(shū),循序漸進(jìn)地介紹了各種數(shù)據(jù)結(jié)構(gòu)模型以及各種算法的底層原理和應(yīng)用,非常適合計(jì)算機(jī)專業(yè)人士閱讀。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),有什么好的書(shū)籍可以推薦?
計(jì)算機(jī)專業(yè)從事軟件開(kāi)發(fā)多年,學(xué)校開(kāi)設(shè)了數(shù)據(jù)結(jié)構(gòu)課程?;旧?,我第一次學(xué)C語(yǔ)言版的數(shù)據(jù)結(jié)構(gòu)的時(shí)候,腦子都快暈了,因?yàn)槲也粫?huì) 看不懂來(lái)回指的指針,后來(lái)問(wèn)一位前輩怎么學(xué)這個(gè)東西。首先徹底理解了指針,然后學(xué)習(xí)了數(shù)據(jù)模型,最后一步直接用C語(yǔ)言代碼實(shí)現(xiàn)。起初,我不能 不試一試,我是不會(huì)理解的?;A(chǔ)不夠,很難理解透徹。所以我花時(shí)間研究了一下C語(yǔ)言的指針。因?yàn)楫?dāng)時(shí)網(wǎng)上沒(méi)有那么多資料,只能在網(wǎng)上找一些抽象的例子來(lái)研究。對(duì)指針的透徹理解是看了芮林博士寫(xiě)的高質(zhì)量C/C編程,對(duì)指針的介紹特別深刻。從此指針慢慢被理解了。
掌握指針后,搞數(shù)據(jù)結(jié)構(gòu)比以前容易多了,不要 不要急于嘗試直接從事代碼工作。先了解數(shù)據(jù)模型,數(shù)據(jù)模型是連接數(shù)據(jù)、鏈表、隊(duì)列、棧、二叉樹(shù)等概念的橋梁,再了解每個(gè)數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)和需要做的動(dòng)作。在編寫(xiě)代碼之前,先弄清楚這些數(shù)據(jù)模型要做什么,然后再嘗試編寫(xiě)代碼。一般來(lái)說(shuō),第一個(gè)模型很難寫(xiě),然后類推。萬(wàn)事開(kāi)頭難。數(shù)據(jù)結(jié)構(gòu)書(shū)籍主要分為多種編程語(yǔ)言,包括C語(yǔ)言、C語(yǔ)言和Java版本數(shù)據(jù)機(jī)構(gòu)。這類書(shū)講解起來(lái)沒(méi)有太大區(qū)別,沒(méi)必要太追求那本書(shū),主要是模型思路和代碼實(shí)現(xiàn)。
什么?;學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有什么用?現(xiàn)在就你所從事的行業(yè)來(lái)說(shuō),C/C,數(shù)據(jù)結(jié)構(gòu)是一個(gè)基本功。設(shè)計(jì)一個(gè)功能模塊除了選擇編程語(yǔ)言,剩下的就是構(gòu)造一個(gè)數(shù)據(jù)模型,在C語(yǔ)言里叫結(jié)構(gòu),在C里叫類,怎么設(shè)計(jì)有時(shí)候取決于數(shù)據(jù)結(jié)構(gòu)里的基本模型。常見(jiàn)編程模型中更多使用隊(duì)列和鏈表,通用設(shè)計(jì)模型中涉及消息隊(duì)列。它是一個(gè)典型的數(shù)據(jù)模型。如果你有數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),這些東西理解起來(lái)會(huì)很快。所謂編程基礎(chǔ),除了基本的編程語(yǔ)法基礎(chǔ),還包括數(shù)據(jù)模型等基礎(chǔ)。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)對(duì)算法的理解也很有幫助。即使最復(fù)雜的算法也是由基本的數(shù)據(jù)結(jié)構(gòu)算法構(gòu)造的。任何算法都不是空中樓閣。沒(méi)有這些基礎(chǔ),直接從事算法的學(xué)習(xí)幾乎是不可能的。
了解了通用的數(shù)據(jù)結(jié)構(gòu)模型,就更容易理解大型項(xiàng)目的代碼。拿到源代碼的第一件事就是整理里面的函數(shù)列表和數(shù)據(jù)內(nèi)容的傳輸。理解數(shù)據(jù)結(jié)構(gòu)對(duì)理解框架非常有益。玩大型項(xiàng)目,首先要了解基礎(chǔ)?;A(chǔ)代碼開(kāi)始,代碼的研究需要一定的基礎(chǔ)。有了模型的概念,框架代碼的研究更快了。剛?cè)胄械臅r(shí)候經(jīng)常聽(tīng)老程序員說(shuō),只要把一個(gè)新的功能模塊的數(shù)據(jù)結(jié)構(gòu)整理好,就可以考慮寫(xiě)代碼了。唐 不要看一個(gè)功能模塊中的一個(gè)小類或者小結(jié)構(gòu),其中每個(gè)變量都可能串聯(lián)一系列功能,所以在設(shè)計(jì)一個(gè)結(jié)構(gòu)的時(shí)候,基本的功能模塊都會(huì)設(shè)計(jì)清楚。
很多初學(xué)者都有這樣一個(gè)壞習(xí)慣,邊寫(xiě)代碼邊設(shè)計(jì)思路,這是編程大忌。編程首先要有清晰的思路,代碼只顯示你的思路。具體實(shí)施要看基本功。不同功能的設(shè)計(jì)師會(huì)有完全不同的效果,性質(zhì)不同,實(shí)現(xiàn)效果也不同。本質(zhì)上是實(shí)力的差異。所以寫(xiě)代碼是為了實(shí)現(xiàn)既定的思路,數(shù)據(jù)結(jié)構(gòu)是設(shè)計(jì)結(jié)構(gòu)或類的基本依據(jù)。
希望能幫到你。